开发者社区> 问答> 正文

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

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

展开
收起
请回答1024 2020-04-05 21:36:44 1136 0
1 条回答
写回答
取消 提交回答
  • 相关知识点:

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

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

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

    回答:

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

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

    使用 Object.is 来进行相等判断时,一般情况下和三等号的判断相同,它处理了一些特殊的情况,比如 -0 和 +0

    2020-04-05 21:37:00
    赞同 展开评论 打赏
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载