JS中的双等和全等号比较机制

JavaScript中的"==" 和 "===" 的用法:

  "=="判断相等的隐式转换机制

    1. 判断是否有NaN(not a Number 非数 是计算机科学中数值数据类型的一种,表示未定义 或者不可表示的值)

    判断等式两边是否有NaN数,如果有,一律判定为false

    2. 是否有Boolean值

      2.1 一边为Boolean类型,一边为表达式

        判断表达式的布尔值与Boolean进行比较

      2.2 一边为Number类型,一边为Boolean类型

        将Boolean类型转换为Number,false = 0,true = 1,然后进行比较

    3.null和undefined

      遇到nul或者undefined,不进行数据类型转换,二者之间的比较,返回true

    4.  有一边是字符串

       4.1 另一边同样是String

        直接对等式两边的值进行比较

       4.2 另一边为Number类型

        将String转换为Number类型进行比较

      4.3 另一边是Boolean类型

        同时将String类型和Boolean类型转换为Number类型,然后进行比较 (false = 0,true = 1)

      4.4 另一边是对象或者数组

        则需要调用toString()方法或者valueOf()方法转换为简单类型,然后进行比较

        对象转换为简单类型时会有限调用valueOf()方法,如果能与简单类型进行直接比较,则不再调用toString()方法,否则调用toString()方法

  "===":比较的是数据类型+值

      两者必须完全相等才为true

摘自:https://blog.csdn.net/qq_37530031/article/details/78317823 

猜你喜欢

转载自www.cnblogs.com/myBlog-ahao/p/11081714.html