一、定义
Object.is()方法用来判断两个值是否严格相等。它与严格比较运算符(===)的行为基本一致。
二、语法
Object.is(obj1, obj2);
参数
obj1:需要比较的第一个值。
obj2:需要比较的第二个值。
返回值
返回两个参数是否相同的布尔值。
Object.is()方法在处理NaN和+0、-0上和严格相等运算符不同。
+0 === -0; // true
Object.is(+0, -0); // false
NaN === NaN; // false
Object.is(NaN, NaN); // true
Object.is()方法在以下情况会返回true。
- 两个值都是undefined。
- 两个值都是null。
- 两个值都是NaN。
- 两个值都是true或false。
- 两个值都是相同个数的字符并且按照相同顺序组成的字符串。
- 两个值都指向同一个对象。
- 两个值都是正零(+0)、都是负零(-0)和都是除零和NaN外的其他同一个数字。