javaScript Object对象方法Object.is
作用:用于判断两个对象是否相等
一、值类型判断,直接比较值是否相等
// 判断值类型
// string
console.log(Object.is('foo', 'foo')); // true
console.log(Object.is('foo', 'foo1')); // false
// number
console.log(Object.is(123, 123)); // true
console.log(Object.is(123, 12)); // false
// boolean
console.log(Object.is(true, true)); // true
console.log(Object.is(true, false)); // false
// undefined
console.log(Object.is(undefined, 12)); // false
console.log(Object.is(undefined, undefined)); // true
二、引用类型判断,需要比较引用的指针是否相同
注意:匿名对象、数组之间比较,必然不相同
// 判断引用类型
console.log(Object.is(null, null)); // true
console.log(Object.is(window, window)); // true
console.log(Object.is(window, null)); // false
console.log(Object.is({a:1}, {a:1})); // false
console.log(Object.is(["aa"], ["aa"])); // false
const obj1 = {
a: 1
};
console.log(Object.is(obj1, obj1)); // true
const arr1 = ["aa"];
console.log(Object.is(arr1, arr1)); // true
三、其他特殊的类型判断
+0与-0不同、NaN情况
// 特殊
console.log(Object.is(+0, -0)); // false
console.log(Object.is(0, -0)); // false
console.log(Object.is(NaN, 0/0)); // true