Javascript 为什么+;new Date()返回与new Date()相同的值。getTime()?
我读了一些源代码,找到了这个。为什么+new Date()返回与new Date()相同的值。getTime()?背后的机制是什么Javascript 为什么+;new Date()返回与new Date()相同的值。getTime()?,javascript,date,Javascript,Date,我读了一些源代码,找到了这个。为什么+new Date()返回与new Date()相同的值。getTime()?背后的机制是什么 var date = new Date() +data == date.getTime() // true 将操作数转换为数字。在该过程中,将调用,它执行与相同的计算。将操作数转换为数字。在该过程中,将调用,它执行与.相同的计算,这是因为一元+运算符在字符串以外的类型上使用时,将在内部调用valueOf。对于日期,它在功能上等同于date.prototype.ge
var date = new Date()
+data == date.getTime() // true
将操作数转换为数字。在该过程中,将调用,它执行与相同的计算。将操作数转换为数字。在该过程中,将调用,它执行与.相同的计算,这是因为一元
+
运算符在字符串以外的类型上使用时,将在内部调用valueOf
。对于日期,它在功能上等同于date.prototype.getTime
,因为两者的执行相同。这是因为一元+
运算符在字符串以外的类型上使用时,将在内部调用valueOf
。对于日期,它在功能上等同于date.prototype.getTime
,因为两者的执行相同。为什么不呢?请注意,date.valueOf()
也返回相同的值,为什么不返回呢?请注意,date.valueOf()
也返回相同的值,这与我说的有什么不同?;)FWIW,Date.prototype.valueOf
当然只有在值是日期对象时才被调用,而不是其他类型的值。@FelixKling我当时正在写答案。我不会过多考虑时间戳特权。这和我说的有什么不同吗?;)FWIW,Date.prototype.valueOf
当然只有在值是日期对象时才被调用,而不是其他类型的值。@FelixKling我当时正在写答案。我不会过多考虑时间戳特权。