美文网首页
2020-06-19

2020-06-19

作者: 大尾巴狼_d4c0 | 来源:发表于2020-06-19 06:47 被阅读0次

    首先我们先来说一下相等的概念:

    我们知道可以使用==或===判断两个值的相等性,其中区别相信大家清楚,===是严格相等的意思,只需要注意NaN和NaN不等就行了。而使用==的时候,JavaScript会帮我们做类型转换,造成一些匪夷所思的结果,那么使用==的时候会在那些情况下做类型转换,又会换成什么样子呢?

    • 如果两个值类型相同,则执行严格相等的运算
    • 如果两个值的类型不同,那么就好玩了,看下面吧
      1、如果一个是null,一个是undefined,那么相等(可以硬背下来)
      2、如果一个是数字,一个是字符串,先将字符串转位数字,然后在比较
      3、如果一个值是true/false则将其转为1/0比较
      4、如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较
      5、其他就不相等了

    看着判断if(xx)和a==b比较难记,其实可以总结为三句话:

    • 空字符串是false
    • 其他都是true
    • 对象全是true

    相关文章

      网友评论

          本文标题:2020-06-19

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