ES6的object.is()

语法

Object.is(value1, value2);  

value1:被比较的第一个值
value2:被比较的第二个值

ES5 比较两个值是否相等,只有两个运算符:相等运算符()和严格相等运算符(=)。它们都有缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0。JavaScript 缺乏一种运算,在所有环境中,只要两个值是一样的,它们就应该相等。

ES6 提出“Same-value equality”(同值相等)算法,Object.is就是部署这个算法的新方法。它用来比较两个值是否严格相等,与严格比较运算符(===)的行为基本一致。

Object.is('test', 'test')
// true
Object.is({
    
    }, {
    
    })
// false

不同之处只有两个:一是+0不等于-0,二是NaN等于自身。

console.log(NaN === NaN); // false
console.log(0 === -0);     // true

Object.is(NaN, NaN) // true
Object.is(+0, -0) // false

参考链接:https://juejin.cn/post/7057015393067466789#heading-23

猜你喜欢

转载自blog.csdn.net/weixin_45680024/article/details/122728092