我在我的代码中遇到了一个查询。
之间有什么区别
new Date(d)
和
new Date(+d)
其中d=new Date();
答案 0 :(得分:4)
第一个返回日期字符串
Tue Jan 07 2014 11:37:28 GMT+0000 (locale)
第二个应该返回 unix 时间戳(以毫秒为单位)
1389091048652
如果你记录它们,但第一个仍然是一个日期对象,而第二个只是一个数字。
两者都有效,可以传回new Date()
答案 1 :(得分:0)
两者之间的区别在于所执行的操作:
new Date(date)
通过解析new Date
对象
date
对象
new Date(+date)
从通过将new Date
对象转换为数字
date
对象
new Date(date.valueOf())
根据从new Date
对象
date
对象
效果是一样的,但是jsPerf似乎指出第三种情况是我测试过的所有浏览器中速度最快的情况。如果测试用例错误(由于浏览器优化),请通过修复它们并在此处进行评论来帮助您!