乐趣区

JavaScript两个不同类型之间是如何使用进行比较的

  1. 如果是 null == undefinedundefined == null, 则他们相等
  2. 如果一个是数字,一个是字符串,则先将字符串转为数字再进行比较

    100 == '99';

    实际上是分为两个步骤

    // 第一步,先将 '99' 转为数字
    100 == Number('99');
    
    // 第二步, 进行比较,结果显然是 false
    100 == 99;

    如果字符串不能转换为正确的数字,则会返回 NaN,NaN 和数字进行比较,将会按照第 5 个规则进行比较

  3. 如果其中一个值是 true,则将true 转为 1。如果其中一个值是false,则将false 转为 0。然后按照第 2 个规则进行比较
    例如

        // 例一
        true == 1;
        // 执行顺序如下        
        // 先将 true 转为 1, 结果便是进行如下比较
        1 == 1;
        // 返回值自然就是 true
        
        // 例二
        true == '2';
        // 执行顺序如下
        // 先将 true 转为 1
        1 == '2';
        // 再将 '2' 转为 2
        1 == 2;
        // 返回值是 false
        

    那么大家猜猜 true == 'true' 结果是什么呢?

  4. 如果一个值是对象,另一个值是字符串或数字,则先将对象转为原始值在进行比较
  5. 其他不同类型之间比较,都返回false
  6. 需要注意的是NaN == NaN, 也返回false
退出移动版