对象标识和相等判断
判断 对象是否的相等的方法,对于不同的情况,需要用到不同的方法,比较常用的有 三等号 “===”, isNaN(number)函数, Object.is(obj1, obj2)方法
三等号 ===
- 对象实例相等判断
function Person(name){
this.name = name;
}
const p1 = new Person('小明');
const p2 = new Person("小明");
console.log(p1 === p2); // false
- === 与 == 双等号的区别是:三等号不会自动类型转换
console.log(1 === true); // false
console.log(2 === '2'); // false
- 但是 === 也有失效的时候
console.log(0 === -0); // true
console.log(+0 === 0); // true
console.log(-0 === +0); // true
console.log(NaN === NaN); // false
isNaN
实际应用: + - * / 与字符运算时可能会自动类型转换出错,这是就会出现 NaN 此时需要做出逻辑处理
console.log(isNaN(NaN)); // true 判断是否是NaN用到
console.log(isNaN( 0 + ("12px"))); // false
Object.is()
Object.is() 功能强大,可以解决上面遇到的困难
console.log(Object.is(p1,p2)); // false
console.log(Object.is('1',1)); // false
console.log(Object.is(0, -0)); // false
console.log(Object.is(NaN,NaN)); // true