ECMA6 002 Object.is()

ES5 比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===)。它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身.

Object.is在所有环境中,只要两个值是一样的,它们就应该相等。

============================================================

Object.is 和 相等运算符(==)

console.log(0==false);//true
console.log(Object.is(0,false));//false

Object.is 和 严格相等运算符(===)

console.log(NaN===NaN);//false
console.log(Object.is(NaN,NaN));//true
console.log(+0===-0);// true
console.log(Object.is(+0,-0));//false

tips: 新手可以简单理解就是Object.is 更加专注于表面像的 形式比较 。。。

console.log({}=={}); //false 因为每个对象在内存空间的地址不一样
console.log({}==={});//false 因为每个对象在内存空间的地址不一样
console.log(Object.is({},{}));//false 因为每个对象在内存空间的地址不一样

 

原文地址:https://www.cnblogs.com/anduyinglufei/p/10353828.html