javascript
date js 半年_JavaScript Date对象
Date對象
源碼下載
最初接觸編程,沒有接觸過非常講究時間控制的領域,往往對時間沒有概念,單片機編程,嵌入式開發,操作系統,無人及姿態控制往往會關注毫秒ms、微秒us級的時間概念。
什么是并行,什么是串行,什么是并發。計算機的CPU是逐條執行指令的,每條指令都要花費一定時間,只不過短小的程序執行的太快,幾個毫秒ms,甚至微秒,沒有時間的感覺。
本節課利用Javascript內置的對象Date對象,來測試一段代碼的執行時間。
Date對象需要通過new和構造函數Date()創建,創建完成后可以調用對象的大量內置默認支持屬性和方法。Javascript語言引入Date對象的目的就是為了處理編程中的時間問題,
該對象依賴Javascript程序的運行環境,可以通過瀏覽器解析或者nodejs解釋器。
下面的代碼示例是利用Javascript內置對象Date測試程序性能。
//測試for循環100萬次計算加法運算時間9 let S =0;10 let T0 =newDate();//創建對象Date,返回此刻時間賦值給變量T0for(let i =0;i<1000;i++){//外循環1000for(let i =0;i<1000;i++){//內循環100013 S +=1;14 }
15 }
16 let T1 =newDate();//創建對象Date,返回此刻時間賦值給變量T117 document.write(T1-T0);//求解T1-T0時間差,便是for運行時間,單位:ms
體驗測試
不改變程序多次刷新瀏覽器查看運行時間變化,是穩定,還是波動。可以嘗試更改for循環程序中的循環次數控制參數1000,刷新瀏覽器查看時間變化。
代碼解析
代碼比較簡單,直接來看第十行創建Date對象的代碼let T0 = new Date();執行該語句后,
從對象的角度看創建了一個對象,這樣的話可以通過d對象調用Date的相關方法和屬性。
該對象也是一個是時間值,這個主要體現在利用運算符運算的時候,比如一個字符串類型數據和數字類型數據進行==比較運算,
Javascript系統會首先把它們轉換成同一種數據類型再進行比較,
兩個對象進行減法計算,首先要做的就是把對象類型數據轉化為數字類型。
可能很多教程說它是時間,那是字符串格式時間,還是數值類型的時間。使用typeof關鍵字測試他就是對象,
那么對象通過什么樣的機制,能夠轉化成數字類型數據,如果不明白,先不用管,先記住Date的用法。隨著學習的深入,嘗試去使用各種類型的構造函數自然會明白。
T0是當前的時間,也是一個對象。T0是執行for循環的開始時間,T1是for循環執行結束的時間。
兩個變量時間差就是for循環的執行時間,在瀏覽器網頁上顯示的時間數值是整數,單位是:ms。
Math對象方法
toString()
執行語句new Date();返回的是一個對象,從數據的角度看,是對象類型數據,值就是時間,Date對象提供了方法toString()可以把對象類型數據
轉化為字符串類型數據。
應用案例
//T0對象轉字符串
let str = T0.toString();
getDate()
通過該方法可以從對象獲得本月第幾號的日期,比如今天是3月13號,那么T0.getDate()的返回值是一個數字類型數據13
getMonth()
同getDate()方法使用規則,只是返回的數據是今天的月份。
方法總結表格
方法
返回
數據類型
getHours()
時
number
getMinutes()
分
number
getSeconds()
秒
number
getFullYear()
年
number
getMonth()
月
number
getDay()
日
number
擴展
時間單位
相鄰單位進制是1000,比如1s=10^3ms,時間級別依次下降
名稱
秒
毫秒
微秒
納秒
單位
s
ms
us
ns
CPU的頻率級別GHz,執行一條指令的時間級別是納秒ns級,單片機的執行速度在us級別,一般一條Javascript語句會被解釋器編譯成幾條指令
下面做一個假設,CPU執行一條指令3ns,for循環結構被編譯后假設執行一次是3條指令,100萬次,就是3X10^6條指令,那么執行時間就是9X10^6ns,換算單位就是9ms
以上數字全為假設,具體值有偏差,但是在數量級的層面基本是符合實際的,有興趣的話可以多了解CPU結構和操作系統
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的date js 半年_JavaScript Date对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 超级好用的5款办公软件,极具办事效率
- 下一篇: html5 txt文件上传,JavaSc