“新日期(d)”与“新日期(+ d)”之间的差异

时间:2014-01-07 10:34:29

标签: javascript date

我在我的代码中遇到了一个查询。

之间有什么区别
new Date(d)

new Date(+d)

其中d=new Date();

2 个答案:

答案 0 :(得分:4)

第一个返回日期字符串

Tue Jan 07 2014 11:37:28 GMT+0000 (locale) 

第二个应该返回 unix 时间戳(以毫秒为单位)

1389091048652 

如果你记录它们,但第一个仍然是一个日期对象,而第二个只是一个数字。

两者都有效,可以传回new Date()

FIDDLE

答案 1 :(得分:0)

两者之间的区别在于所执行的操作:

new Date(date)

通过解析new Date对象

的字符串表示来创建date对象
new Date(+date)

从通过将new Date对象转换为数字

获得的时间戳创建date对象
new Date(date.valueOf())

根据从new Date对象

获取的时间戳创建一个date对象

效果是一样的,但是jsPerf似乎指出第三种情况是我测试过的所有浏览器中速度最快的情况。如果测试用例错误(由于浏览器优化),请通过修复它们并在此处进行评论来帮助您!