Object.is(value1: any, value2: any): boolean
Object.is()方法接收两个参数,用于判断两个值是否为 相同值。,返回一个布尔值。
下面给出Object.is()方法的判断规则:
如果以下其中一项成立,则两个值相同:
Object.is() 和 === 的区别:唯一区别在于它们处理带符号的 0 和 NaN
值的时候。
===
运算符(和 ==
运算符)将数值 -0
和 +0
视为相等,但是会将 NaN 视为彼此不相等。
直接上代码验证:
Object.is(0, -0) // false
Object.is(+0, -0) // false
Object.is(-0, -0) // true
+0 == -0 // true
+0 === -0 //true
Object.is(NaN, 0 / 0); // true
Object.is(NaN, Number.NaN); // true
NaN == NaN // false
NaN === NaN // false