日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

date js 半年_JavaScript Date对象

發(fā)布時間:2023/12/10 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 date js 半年_JavaScript Date对象 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Date對象

源碼下載

最初接觸編程,沒有接觸過非常講究時間控制的領(lǐng)域,往往對時間沒有概念,單片機編程,嵌入式開發(fā),操作系統(tǒng),無人及姿態(tài)控制往往會關(guān)注毫秒ms、微秒us級的時間概念。

什么是并行,什么是串行,什么是并發(fā)。計算機的CPU是逐條執(zhí)行指令的,每條指令都要花費一定時間,只不過短小的程序執(zhí)行的太快,幾個毫秒ms,甚至微秒,沒有時間的感覺。

本節(jié)課利用Javascript內(nèi)置的對象Date對象,來測試一段代碼的執(zhí)行時間。

Date對象需要通過new和構(gòu)造函數(shù)Date()創(chuàng)建,創(chuàng)建完成后可以調(diào)用對象的大量內(nèi)置默認支持屬性和方法。Javascript語言引入Date對象的目的就是為了處理編程中的時間問題,

該對象依賴Javascript程序的運行環(huán)境,可以通過瀏覽器解析或者nodejs解釋器。

下面的代碼示例是利用Javascript內(nèi)置對象Date測試程序性能。

//測試for循環(huán)100萬次計算加法運算時間9 let S =0;10 let T0 =newDate();//創(chuàng)建對象Date,返回此刻時間賦值給變量T0for(let i =0;i<1000;i++){//外循環(huán)1000for(let i =0;i<1000;i++){//內(nèi)循環(huán)100013 S +=1;14 }

15 }

16 let T1 =newDate();//創(chuàng)建對象Date,返回此刻時間賦值給變量T117 document.write(T1-T0);//求解T1-T0時間差,便是for運行時間,單位:ms

體驗測試

不改變程序多次刷新瀏覽器查看運行時間變化,是穩(wěn)定,還是波動。可以嘗試更改for循環(huán)程序中的循環(huán)次數(shù)控制參數(shù)1000,刷新瀏覽器查看時間變化。

代碼解析

代碼比較簡單,直接來看第十行創(chuàng)建Date對象的代碼let T0 = new Date();執(zhí)行該語句后,

從對象的角度看創(chuàng)建了一個對象,這樣的話可以通過d對象調(diào)用Date的相關(guān)方法和屬性。

該對象也是一個是時間值,這個主要體現(xiàn)在利用運算符運算的時候,比如一個字符串類型數(shù)據(jù)和數(shù)字類型數(shù)據(jù)進行==比較運算,

Javascript系統(tǒng)會首先把它們轉(zhuǎn)換成同一種數(shù)據(jù)類型再進行比較,

兩個對象進行減法計算,首先要做的就是把對象類型數(shù)據(jù)轉(zhuǎn)化為數(shù)字類型。

可能很多教程說它是時間,那是字符串格式時間,還是數(shù)值類型的時間。使用typeof關(guān)鍵字測試他就是對象,

那么對象通過什么樣的機制,能夠轉(zhuǎn)化成數(shù)字類型數(shù)據(jù),如果不明白,先不用管,先記住Date的用法。隨著學習的深入,嘗試去使用各種類型的構(gòu)造函數(shù)自然會明白。

T0是當前的時間,也是一個對象。T0是執(zhí)行for循環(huán)的開始時間,T1是for循環(huán)執(zhí)行結(jié)束的時間。

兩個變量時間差就是for循環(huán)的執(zhí)行時間,在瀏覽器網(wǎng)頁上顯示的時間數(shù)值是整數(shù),單位是:ms。

Math對象方法

toString()

執(zhí)行語句new Date();返回的是一個對象,從數(shù)據(jù)的角度看,是對象類型數(shù)據(jù),值就是時間,Date對象提供了方法toString()可以把對象類型數(shù)據(jù)

轉(zhuǎn)化為字符串類型數(shù)據(jù)。

應(yīng)用案例

//T0對象轉(zhuǎn)字符串

let str = T0.toString();

getDate()

通過該方法可以從對象獲得本月第幾號的日期,比如今天是3月13號,那么T0.getDate()的返回值是一個數(shù)字類型數(shù)據(jù)13

getMonth()

同getDate()方法使用規(guī)則,只是返回的數(shù)據(jù)是今天的月份。

方法總結(jié)表格

方法

返回

數(shù)據(jù)類型

getHours()

number

getMinutes()

number

getSeconds()

number

getFullYear()

number

getMonth()

number

getDay()

number

擴展

時間單位

相鄰單位進制是1000,比如1s=10^3ms,時間級別依次下降

名稱

毫秒

微秒

納秒

單位

s

ms

us

ns

CPU的頻率級別GHz,執(zhí)行一條指令的時間級別是納秒ns級,單片機的執(zhí)行速度在us級別,一般一條Javascript語句會被解釋器編譯成幾條指令

下面做一個假設(shè),CPU執(zhí)行一條指令3ns,for循環(huán)結(jié)構(gòu)被編譯后假設(shè)執(zhí)行一次是3條指令,100萬次,就是3X10^6條指令,那么執(zhí)行時間就是9X10^6ns,換算單位就是9ms

以上數(shù)字全為假設(shè),具體值有偏差,但是在數(shù)量級的層面基本是符合實際的,有興趣的話可以多了解CPU結(jié)構(gòu)和操作系統(tǒng)

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的date js 半年_JavaScript Date对象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。