xiaokeqi / i-learned

1 stars 0 forks source link

== 、 ===、 Object.is() #36

Open xiaokeqi opened 4 years ago

xiaokeqi commented 4 years ago

es6之前,我们判断是否相等,经常用==,===。es6出现之后,新产生了一个api Object.is()来判断相等性。 我们知道:undefined == null, NaN !=NaN,+0 === -0等等,诸如此类,我们需要通过我们强大的大脑来记住这些"特性"

Object.is()则是帮我们解决了这些问题。让其相等性显得"正常"起来。

如下:

differences of operators in equality comparisons javascript

从上图中,我们可以看出

Object.is(NaN, NaN) // true

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

有了Object.is(), 再也不用记那些特殊"相等",特殊"不等"的情况了,它是更严格、更合乎常理的==函数。

还有一点可幸的是,好多库均已通过Object.is()来判断相等性。赞哦!