为什么这两个日期在 javascript 中不相等?

Why these two dates are not equal in javascript?

我正在比较 objA 和 objB 中的两个日期,它们不相等,如下面的控制台输出所示。
不明白为什么..

objA[keysA[i]]
Sun Sep 25 2016 00:00:00 GMT+0900 (KST)
objB[keysA[i]]
Sun Sep 25 2016 00:00:00 GMT+0900 (KST)
typeof objA[keysA[i]]
"object"
typeof objB[keysA[i]]
"object"
objA[keysA[i]] !== objB[keysA[i]]
true

您需要将日期字符串化并以这种方式进行比较。例如:

var date1 = new Date(); 
var date2 = new Date();

console.log (date1==date2); // This will print false

但是如果我们将日期字符串化并以这种方式比较它们,这将成为现实,如下所示:

console.log (date1.toString() === date2.toString())

在 JavaScript 中,您通过引用比较对象。

let a = {};
let b = {};
let c = a;

a == b //false
a == c //true

比较对象的一种简单方法是将它们转换为字符串并比较字符串。您可以使用 Date.prototype.toString 来比较 Date 个像这样的对象

objA[keysA[i]].toString() !== objB[keysA[i]]].toString() //false