ECMA6 002 Object.is()
Posted anduyinglufei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 因为每个对象在内存空间的地址不一样
以上是关于ECMA6 002 Object.is()的主要内容,如果未能解决你的问题,请参考以下文章
-Mapping persistent classes-002identity详解