美文网首页
javascript中的非严格相等

javascript中的非严格相等

作者: 波罗丁的菠萝 | 来源:发表于2020-04-02 21:25 被阅读0次

    在javascript中a == b的结果究竟是什么?执行非严格相等操作时究竟遵循着怎样的规则,让我们追随着javascript中幽暗的小路去发现其中的奥秘。

    1. a和b的类型一致时

        当a和b的类型是一样的时候,会按照===进行比较,返回对应的结果。对此我们无需过多解释

    2. 当a和b的类型不一致时

        这是我们要重点讨论的问题,a和b之间会进行类型转换,javascript会将a和b转换为相同的类型再进行比较,==的一边或两边都可能被转换。

        javascript中有一对好基友null和undefined,而且它俩还结为联盟一致对外。null == undefined 返回true,通常所有的对象都与 undefined 和 null 不相等。

        javascript是个偏心眼,对于原始类型,它更偏向于把a和b转化为number再进行比较。

        javascript还是个懒虫,对于Object类型,它会获取Object的原始值之后再进行比较。

    记住这三点:好基友、偏心眼、懒虫对于我们理解 == 背后的故事有很大的帮助。

    相关文章

      网友评论

          本文标题:javascript中的非严格相等

          本文链接:https://www.haomeiwen.com/subject/cagfphtx.html