美文网首页
关于 if(xx)与 a == b 的判断

关于 if(xx)与 a == b 的判断

作者: 5吖 | 来源:发表于2018-10-23 17:16 被阅读0次

    if(xx)
    对于if(xx),是把xx转换成boolean在进行判断
    如果括号内是boolean,直接判断。否则括号里的表达式会被强制转换成boolean,转换规则如下:

    1.if(number)
    当 if(number),+0,-0,NaN会被转换为false,其他会被转换为true


    1.jpg

    2.if(string)
    当 if(string),空字符串为false,其他为true


    2.jpg

    3.if(boolean)
    当 if(boolean),直接判断


    3.jpg

    4.if(object)
    当 if(object),转换为true


    4.jpg

    5.if(undefined)
    当 if(undefined),转换为false


    5.jpg

    6.if(null)
    当 if(null),转换为false


    6.jpg

    a==b
    对于a==b,是将两边转换成数值进行判断
    对于相同类型的a、b,相等的判断较简单。以下主要讨论不同数据类型的a、b之间进行相等运算时的判断

    1. string == number
      结果为 toNumber(a) == b ,当a无法转换为number时判断相等为false


      7.jpg
    2. boolean == (any)
      Boolean在相等运算时会转换为数值,true为1,false为0。

    8.jpg
    1. object == number/string
      object会试图使用valueOf和toString转换后比较
    9.jpg
    1. null == undefined //true

    相关文章

      网友评论

          本文标题:关于 if(xx)与 a == b 的判断

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