美文网首页
js中的相等运算符

js中的相等运算符

作者: 橘子柚子橙子_ | 来源:发表于2018-03-19 21:09 被阅读0次

    刚才看犀牛书,看到这个知识点,记录一下:


    严格相等运算符“===”

    - 如果两个值类型不相同,在它们不相等
    - 如果两个值都是null或者都是undefined,则它们不相等
    - 如果两个值都是布尔值true或者都是布尔值false,则它们相等
    - 如果其中一个是NaN,或者两个值都是NaN,则它们不相等。NaN和其他任何值都是不相等的,包括它本身!通过x !== x来判断,只有x为NaN的时候,这个表达式的值才为true
    - 如果两个值为数字,则它们相等。如果一个值是0,另一个值是-0,则它们相等
    - 如果两个值为字符串,且所含的对应位上的16位数完全相等,则它们相等。如果它们的长度或内容不同,则它们不等
    - 如果两个引用值指向同一个对象,数组或者函数,则它们相等。如果指向不同的对象,则它们不等,尽管两个对象具有完全一样的属性。
    

    相等运算符“==”

    相等运算符和严格相等运算符类似,但是并不严格。如果两个操作数并不是同一类型,那么相等运算符会尝试进行一些类型转换。

    - 如果两个操作数的类型相同,则和上文所述的严格相等的比较规则一样。如果严格相等,则比较结果为相等。如果它们不严格相等,则比较结果为不相等。
    - 如果两个操作数类型不同,“==”相等操作符也可能认为它们相等。
        - 如果一个值是null,一个值是undefined,则相等
        - 如果一个值是数字,一个是字符串,先将字符串转为数字,然后再进行比较
        - 如果其中一个值是true,则将其转为1,再进行比较。如果其中一个是false,则将其转为0,再进行比较
        - 如果一个值是对象,另一个是数组或字符串,则将对象使用toString()/valueOf()转为原始值,再进行比较。
    

    小例子
    说出下面表达式的结果:
    
    “1” == true
    

    ---end---

    相关文章

      网友评论

          本文标题:js中的相等运算符

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