这是我的代码,
var a = new Date(1); // it returns Thu Jan 01 1970 05:30:00 GMT +0530 (India Standard Time)
var b = new Date(1); // it returns Thu Jan 01 1970 05:30:00 GMT +0530 (India Standard Time)
if(a != b)
debugger;
当我运行该代码时,条件被击中(成功)..如何可能。因为a和b日期时间值都相同。
答案 0 :(得分:0)
在您的示例中,a
和b
是相同类型的两个不同对象,可能具有相同的值,但是相等运算符识别它们是不同的实例,因此不被视为相等。 spec涵盖exactly how that works。
如果要比较它们,则需要比较对象中的值。在两者上调用getTime()
将为您提供可以安全比较的数字。这两个对象也有可能没有相同的值(按时钟滴答分配),因此getTime()
可能并非总是如此。
var a = new Date();
var b = new Date();
console.log(a == b); // Always false, a and b are different instances
console.log(a.getTime() == b.getTime()); // Usually true, since getTime returns a number