var timeInMs = Date.now();
每个MDN
对比
var timeInMs = new Date(optional).getTime();
每个MDN。
除了语法和通过第二个版本中的可选设置日期(不是当前)的能力之外,两者之间有什么区别吗?
Date.now() 更快 - 查看jsperf
这些东西是一样的(在语义上编辑;性能稍微好一点.now()
):
var t1 = Date.now();
var t2 = new Date().getTime();
但是,任何已创建Date
实例的时间值在其构造时(或在其设置的任何时间/日期)都会被冻结。也就是说,如果你这样做:
var now = new Date();
然后稍等片刻,随后的调用now.getTime()
将告诉您设置变量时的时间。
它们实际上是等效的,但您应该使用Date.now()
. 它更清晰,速度大约是原来的两倍。
编辑:来源:http: //jsperf.com/date-now-vs-new-date
当你这样做时,(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;