美文网首页
JavaScript 中的严格相等===(全等符号)

JavaScript 中的严格相等===(全等符号)

作者: ChrisFang | 来源:发表于2019-03-22 18:31 被阅读0次

    严格相等其实就是用全等操作符来判断两者是否相等,而且两个值在比较前都不会进行隐式转换。比如两个值的类型如果不是相同,那么这两个值是不相等的。

    const  x = 123;
    const  y = '123';
    console.log(x === y) // false
    

    如果两个值值相同,值的类型相同,然后类型都不是Number,那么两个值是相等的。

    const str = '0';
    const str2 = '0';
    console.log(str === str2) // true
    

    如果两个值都是Number类型,两个值都相等,但是两个值都不是NaN,甚至两个值分别为 +0 和 -0 时,两个值被认为是全等的

    const num1 = NaN;
    const num2 = NaN;
    console.log(num1 === num2) // false
    console.log(num1 == num2) // false
    console.log(+0 === -0) // true
    

    在日常中使用全等操作符几乎总是正确的选择。
    对于除了数值之外的值,全等操作符使用明确的语义进行比较:一个值只与自身全等。
    对于数值,全等操作符使用略加修改的语义来处理两个特殊情况:
    第一个情况是,浮点数 0 是不分正负的。区分 +0 和 -0 在解决一些特定的数学问题时是必要的,但是大部分情况下我们并不用关心。全等操作符认为这两个值是全等的。
    第二个情况是,浮点数包含了 NaN 值,用来表示某些定义不明确的数学问题的解,例如:正无穷加负无穷。全等操作符认为 NaN 与其他任何值都不全等,包括它自己。(等式 (x !== x) 成立的唯一情况是 x 的值为 NaN)

    相关文章

      网友评论

          本文标题:JavaScript 中的严格相等===(全等符号)

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