返回值+新Date()与Date.now()不同吗?

时间:2016-05-12 19:51:16

标签: javascript timestamp

假设我有两个功能

function newDate(){
  return +new Date();
}
function dateNow(){
  return Date.now();
}

所以我想知道一个人返回 + new Date()和另一个 Date.now()会有所不同吗?

2 个答案:

答案 0 :(得分:2)

根据规范:

  

15.9.4.4 Date.now()
  now函数返回一个Number值,该值是指定UTC 现在调用的日期和时间的时间值

     

15.9.3.3新日期()
  新构造的对象的[[PrimitiveValue]]内部属性设置为标识当前时间的时间值(UTC)

Date创建的new Date()对象强制转换为带有一元+运算符的数字会产生原始值。因此,你的两个案例是否总是相同的问题归结为以下两件事是否相同:

  1. 现在来电的日期和时间
  2. 标识当前时间的时间值
  3. 这似乎是一个很好的选择。

    第三方编辑

    chrome(v49)控制台返回:

    x = Date.now(), y1 = +new Date(), y2 = new Date();
    x returns 1463201841680
    y1 returns 1463201841680
    y2 returns Sat May 14 2016 06:57:21 GMT+0200 
    

答案 1 :(得分:1)

他们给出相同的价值。在chrome devtools控制台中验证

Date.now() === +new Date()
> true

但是,使用Date.now()

可以提高性能

Performance - Date.now() vs Date.getTime()

相关问题