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

Why these two dates are not equal in javascript?

本文关键字:日期 javascript 不相等 两个 为什么      更新时间:2023-09-26

我比较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

在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

您需要对日期进行字符串化&这样比较它们。例如:

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

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

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