📅  最后修改于: 2023-12-03 15:16:06.201000             🧑  作者: Mango
在Javascript中,比较两个变量的值是否相等,一般有两种方式:使用==
和===
。但是这两种方式都有一些特殊情况,比如NaN
与任何值都不相等,+0
与-0
相等。因此,Javascript引入了Object.is()
方法来解决这些问题。
Object.is(value1, value2)
返回一个Boolean类型的值,表示两个参数是否相等。
使用Object.is()
方法比较两个值是否相等,语法很简单,只需要传入两个要比较的值即可。
Object.is(value1, value2);
下面我们来看一些实际的例子:
Object.is(0, -0); // false
Object.is(NaN, NaN); // true
Object.is("foo", "foo"); // true
Object.is({}, {}); // false
可以看到,Object.is()
方法可以正确处理NaN
与任何值都不相等、+0
与-0
不相等的情况。但是注意,Object.is()
方法并不能比较两个对象是否内容相等,因为两个对象在内存中的引用地址不同,即使内容相同,在Object.is()
方法中也会返回false
。
Object.is()
方法是一种更为严格的值相等比较方式,它能够正确处理一些特殊情况。但是需要注意,它并不能比较对象内容是否相等。