if以及==的判断

作者: 饥人谷_momo | 来源:发表于2018-06-26 00:53 被阅读10次
  • if(xx){} 会输出什么
    • if(number){}, 当number是0或者NaN为false,其他为true
    • if(string){}, 空字符串为false,其他为true
    • if(null){}, 输出false
    • if(undefined){}, 输出false
    • if(boolean){},按照布尔值判断
    • if(object){}, 输出true
    • if(Symbol){}, 输出true
  • ==,做相等运算时,一般都要把数据类型转换成数字类型,或者转化为相同的数据类型。
    • 如果两个值类型相同,则执行严格相等的运算
    • 如果两个值的类型不同
    1. 如果一个是null,一个是undefined,那么相等
    2. 如果一个是数字,一个是字符串,先将字符串转为数字,然后比较
    3. 如果一个值是true/false则将其转为1/0比较
    4. 如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较
    5. 其它就不相等了
    • 其他类型转化为数字类型使用Number()函数,规则如下:
      1. 如果是Boolean值,true和false将分别被转换为1和0。
      2. 如果是数字值,只是简单的传入和返回。
      3. 如果是null值,返回0。
      4. 如果是undefined,返回NaN。
      5. 如果是字符串,遵循下列规则:
        5.1 如果字符串中只包含数字(包括前面带加号或负号的情况),则将其转换为十进制数值, 即"1"会变成1,"123"会变成123,而"011"会变成11(注意:前导的零被忽略了);
        5.2 如果字符串中包含有效的浮点格式,如"1.1",则将其转换为对应的浮点数值(同样,也会忽略前导零);
        5.3 如果字符串中包含有效的十六进制格式,例如"0xf",则将其转换为相同大小的十进制整数值;
        5.4 如果字符串是空的(不包含任何字符),则将其转换为0;
        5.5 如果字符串中包含除上述格式之外的字符,则将其转换为NaN。

相关文章

网友评论

    本文标题:if以及==的判断

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