比较Javascript中两个相同的日期



我试着在chrome控制台比较2个相同的日期:

新日期("2021 - 06 - 23")= =新的日期("2021 - 06 - 23")

给出false

new Date("2021-06-23")>新日期("2021 - 06 - 23")

给出false

,但新日期("2021 - 06 - 23")在= new日期("2021 - 06 - 23")

它给出了true

我不明白为什么大于等于等于为真,而大于也和等于也为假。

请解释。

因为new Date创建了一个唯一的对象。

即使它们具有相同的属性,两个不同的对象也永远不会相等。

const x = {a : "aaa"};
const y = {a : "aaa"};
console.log(x == y); // false
const z = x; // litteraly the same object
console.log(x == z); // true

Date对象本身不支持更大或相等操作符…它类似于symbol。topprimitive

这个函数在需要转换为适当的原始值时被调用

const object1 = {
[Symbol.toPrimitive](hint) {
if (hint === 'number') {
return 42;
}
return null;
}
};
console.log(+object1);
// expected output: 42

如果你想比较两个日期是否相等那么你可以使用

+new Date() === +new Date()

当你使用+ - * / < >操作符时,它希望将其转换为数字,所以你实际上是在比较数字而不是对象

最新更新