Skip to content
登录后刷题更便捷

Object.is() 与原来的比较操作符 “===”、“==” 的区别?

难度:
相关知识点:

两等号判等,会在比较时进行类型转换。三等号判等(判断严格),比较时不进行隐式类型转换,(类型不同则会返回 false)。

Object.is 在三等号判等的基础上特别处理了 NaN 、-0 和 +0 ,保证 -0 和 +0 不再相同,但 Object.is(NaN, NaN) 会返回 true.

Object.is 应被认为有其特殊的用途,而不能用它认为它比其它的相等对比更宽松或严格。

回答:

使用双等号进行相等判断时,如果两边的类型不一致,则会进行强制类型转化后再进行比较。

使用三等号进行相等判断时,如果两边的类型不一致时,不会做强制类型准换,直接返回 false。

使用 Object.is 来进行相等判断时,一般情况下和三等号的判断相同,它处理了一些特殊的情况,比如 -0 和 +0 不再相等,两个 NaN 认定为是相等的。

内容仅供参考,难免有不恰当的地方,如果有问题欢迎及时反馈
部分内容来自网络,如果不慎侵犯您的权益,请联系我们,以便及时删除侵权内容