Object.is和== 与===的区别

在es5中我们比较两个值是否相等,用两个运算符:相等运算符(==)和严格相等运算符(===)。它们都有自己的缺点,前者会自动转换数据类型,后者的NaN不等于自身,以及+0等于-0。es6中部署了一个新的方法Object.is来比较两个值严格相等,它与严格比较运算符(===)基本一致,不同之处只有两个:一是+0不等于-0,二是NaN等于自身。

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

+0 === -0 //true
NaN === NaN // false

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

你可能感兴趣的:(Object.is和== 与===的区别)