无法使用日期时间比较命中循环

时间:2015-01-29 16:51:47

标签: javascript

这是我的代码,

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日期时间值都相同。

1 个答案:

答案 0 :(得分:0)

在您的示例中,ab是相同类型的两个不同对象,可能具有相同的值,但是相等运算符识别它们是不同的实例,因此不被视为相等。 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