美文网首页
js世界中的四种相等

js世界中的四种相等

作者: 红叶1942 | 来源:发表于2019-04-02 21:06 被阅读0次

    js中有四种元语相等,分别为==,===, sameValue, sameValueZero,下面分别介绍一下其异同点,在这些异同点中,关于+0,-0,NaN的判断引出了很多的设定。

    ==

    该相等,在a,b执行比较前,会进行类型的转换,再进行比较,详情见==背后的故事

    ===

    该严格相等,不会进行类型转换,而是直接进行比较,这里需要注意的是

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

    sameValue

    其执行算法和 === 基本相同,主要区别在于0和NaN,在该算法策略中,+0和-0不等,NaN等于NaN,js透出了一个api是Object.is,其表现如下:

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

    sameValueZero

    其执行算法也和===雷同,仍然是在0和NaN上有区别,但是js并没有透出api,目前在js的一些api上有体现

    • typeArray, arrayBuffer的构造函数
    • Map, Set的key值

      const m = new Map([[+0, 0], [-0, 1]]); // m只有一个值

    • Array.includes

    相关文章

      网友评论

          本文标题:js世界中的四种相等

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