Object对象方法(五)is

134 阅读1分钟

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