美文网首页
emac ==、 ===、sameValue、sameValu

emac ==、 ===、sameValue、sameValu

作者: 技术体验师_萦回 | 来源:发表于2024-01-15 08:12 被阅读0次

    区别和联系

    • ===和:sameValue(Object.is使用此算法)之间的唯一区别在于它们处理带符号的 0 和 NaN 值的时候。=== 运算符将数值 -0 和 +0 视为相等,但是会将 NaN 视为彼此不相等

    ==

    相等运算符用于比较两个值(x,y),返回true或false。步骤如下:

    • 如果x不是正常值(比如抛出一个错误),中断执行。
    • 如果y不是正常值,中断执行。
    • 如果Type(x)Type(y)相同,执行严格相等运算x === y
    • 如果xnullyundefined,返回true
    • 如果xundefinedynull,返回true
    • 如果Type(x)是数值,Type(y)是字符串,返回x == ToNumber(y)的结果。
    • 如果Type(x)是字符串,Type(y)是数值,返回ToNumber(x) == y的结果。
    • 如果Type(x)是布尔值,返回ToNumber(x) == y的结果。
    • 如果Type(y)是布尔值,返回x == ToNumber(y)的结果。
    • 如果Type(x)是字符串或数值或Symbol值,Type(y)是对象,返回x == ToPrimitive(y)的结果。
    • 如果Type(x)是对象,Type(y)是字符串或数值或Symbol值,返回ToPrimitive(x) == y的结果。
    • 返回false

    总结

    • 类型相同,按===
    • 类型不同
      • number和string , str ToNumber再比较
      • 有boolean , boolean转number再比较
      • number\string\symbo 和object

    ===

    SameValue

    Object.is使用的sameValue算法

    SameValueZero

    SameValueZero:Set值相关api、Map key相关api

    相关文章

      网友评论

          本文标题:emac ==、 ===、sameValue、sameValu

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