美文网首页
==比较时候的相互转换规则

==比较时候的相互转换规则

作者: maomizone | 来源:发表于2022-04-21 09:15 被阅读0次

    == 两边数据类型不同,要先转换为相同类型,然后再进行比较

    @1 对象==字符串,将对象转为字符串(String([val]))有三步骤,具体看之前的笔记
    @2 null == undefined -> true    null === undefined -> false    null/undefined和其他任何值不相等
    @3 对象==对象,比较是地址值
    @4 NaN !== NaN    Object.is(NaN, NaN) -> true
    @5 除了以上情况,都是转为数字进行比较的

    === 绝对相等,如果类型不同,直接false,工作中使用这种

      // 要转为数字比较,用Number([]) -> 0 Number(false) -> 0
      console.log([] == false) // true
      // 先处理![],因为只有0/NaN/null/undefined/空字符串为false,所以![]为false
      console.log(![] == false) // true
      console.log(typeof undefined == typeof null) // false
      // 这里NULL是未定义的变量,typeof NULL -> 'undefined'
      console.log(typeof undefined == typeof NULL) // true
      // 'function' == 'function'
      console.log(typeof function () {} == typeof class {}) // true
    

    相关文章

      网友评论

          本文标题:==比较时候的相互转换规则

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