0

我无法弄清楚为什么在下面的代码中ls_a === a返回false。似乎当我将日期转换为字符串并返回日期时,有些东西丢失了,但是什么?

JSFiddle:http: //jsfiddle.net/s6accbax/

var a = new Date();
localStorage.a = a.getTime();
ls_a = new Date(parseInt(localStorage.a));

console.log(a);    // Fri Jun 12 2015 22:12:34 GMT-0600 (MDT)
console.log(ls_a); // Fri Jun 12 2015 22:12:34 GMT-0600 (MDT)
console.log(ls_a === a); // returns false!?!?!
console.log(ls_a.getTime() === a.getTime()); // returns true as expected
4

2 回答 2

4

重复:JavaScript 日期对象比较

这是因为ls_a是一个不同的对象,而不是a当你调用时.getTime()你得到一个不作为对象比较的字符串

于 2015-06-13T04:29:05.360 回答
1

使用 时没有类型转换===,因此 ls_a 不等同于 a。

严格相等运算符 === 仅考虑具有相同类型的相等值。

于 2015-06-13T04:30:12.850 回答