性能 - Date.now() 与 Date.getTime()
IT技术
javascript
2021-02-25 06:25:50
5个回答
这些东西是一样的(在语义上编辑;使用 性能好一点.now()
):
var t1 = Date.now();
var t2 = new Date().getTime();
但是,任何已创建Date
实例的时间值在其构建时(或在其设置的任何时间/日期)都会被冻结。也就是说,如果你这样做:
var now = new Date();
然后稍等片刻,随后的调用now.getTime()
将告诉变量设置点的时间。
它们实际上是等效的,但您应该使用Date.now()
. 它更清晰,速度快两倍。
当您这样做时,(new Date()).getTime()
您正在创建一个新的 Date 对象。如果重复执行此操作,它会比 Date.now() 慢 2 倍左右
同样的原则应该适用于Array.prototype.slice.call(arguments, 0)
vs[].slice.call(arguments, 0)
对,那是正确的; 当使用当前时间时,它们实际上是等效的。
有时最好在 Date 对象格式中保留一些时间跟踪变量,而不是仅仅保留几毫秒,以便无需重新实例化即可访问 Date 的方法。在这种情况下,Date.now() 仍然胜过 new Date() 等,尽管在我的 Chrome 上只有大约 20%,在 IE 上只有很小的一部分。
请参阅我的 JSPERF
timeStamp2.setTime(Date.now()); // set to current;
对比
timeStamp1 = new Date(); // set to current;