我无法弄清楚为什么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
答案 0 :(得分:4)
重复:JavaScript Date Object Comparison
这是因为ls_a
与a
不同,当您调用.getTime()
时,您获得的字符串未作为对象进行比较
答案 1 :(得分:1)
使用===
时没有类型转换,因此ls_a不等于a。
严格相等运算符===只考虑相等的值 相同的类型。