我不知道为什么下面的测试输出为false:
const test = "2022-12-10T06:51:00Z"
if (dayjs(test) == dayjs("2022-12-10T06:51:00Z")){
console.log('true')
} else {
console.log('false')
}
虽然这个测试是正确的
const test = "2022-12-10T06:51:00Z"
if (test == "2022-12-10T06:51:00Z"){
console.log('true')
} else {
console.log('false')
}
有人能解释一下为什么第一个测试是假的吗?
谢谢你
1条答案
按热度按时间nwnhqdif1#
因为每次调用
dayjs
时,它都会返回一个新的对象,不管你传递的值是否相同。正如你所看到的,
obj1
和obj2
是两个不同的对象,在内存中有不同的引用,所以它们不相等。但是当比较两个字符串时,如果值相同,则比较检查变为
true
。您可以阅读更多关于对象引用和复制here的内容。