var timeInMs = Date.now();
pervs.
var timeInMs = new Date(optional).getTime();
perMdn
. 除语法和通过第二版中的可选设置日期(不是当前)的能力之外,两者之间有任何区别吗?
Date.now()
jsperf
这些事物是相同的(语义上的dedit;在
var t1 = Date.now();
var t2 = new Date().getTime();
否则,任何已经创建的实例的时间值在其构建时(或设置为任何时间/日期)都会冻结。也就是说,如果您这样做:
Date
然后等待一段时间,随后的呼叫
var now = new Date();
将在设置变量的时间内告诉时间。它们有效地等效,但是您应该使用
now.getTime()
。它更明显,大约是两倍的速度。
Edit:来源:
Https://jsperf.app/nimime/15
(new Date()).getTime()
vs.
Array.prototype.slice.call(arguments, 0)
http://jsperf.com/new-date-vs-settime
DATE.NOW()
调用静态方法,这足以受到首选的态度,可以完善测试:[].slice.call(arguments, 0)
测试执行:
timeStamp2.setTime(Date.now()); // set to current;
timeStamp1 = new Date(); // set to current;
正在调用类的静态方法
# cat test.ts
const limit = 10000000 //ten milion
let startTime = Date.now()
let val = 0
for (let i=0; i<=limit; i++) {
const val1 = Date.now()
}
let diff = Date.now() - startTime
console.log('Time Date.now(): ' + diff + ' ms')
startTime = Date.now()
val=0
for (let i=0; i<=limit; i++) {
const val1 = new Date().getTime()
}
diff = Date.now() - startTime
console.log('Time with new Date().getTime: ' + diff + ' ms' )
# node test.ts
Time Date.now(): 818 ms
Time with new Date().getTime: 1625 ms
可以分为两个步骤:
Date.now()
:调用now()
Date
方法以初始化一个类的实例。
我们刚刚初始化的实例的方法。
new Date().getTime()
的静态方法。