美文网首页
if(xx)的和a==b的判断

if(xx)的和a==b的判断

作者: 小御茶 | 来源:发表于2018-05-12 09:23 被阅读0次

    1.if(xx)括号里的表达式,会被强制转换为布尔类型

    具体转换法则如下

    • Undefined 转换为 false;
    • Null 转换为false;
    • Boolean 直接转换;
    • Number : +0、-0、NaN 转换为 false, 除此之外全为 true;
    • String : 空字符串为false,其他都为true。(" ")这种含有空格的看起来像空字符串然而实际是非空字符串,所有的非空字符串转换为布尔值都是 true)英文了解一下:String->Boolean---The result is false if the argument is the empty String; otherwise the result is true.

    2.关于 a == b 的判断

    ==与===的区别在于JavaScript会帮我们做类型转换:

    • 若两个值类型相同,则执行严格相等运算;

    • 若两个值的类型不同:

       (1)null == undefined;
      
       (2)若一个是数字,一个是字符串,先将字符串转为数字再比较;
      
       (3)若一个值是布尔值(true/false)则将其转为数字(1/0)再比较;
      
       (4)若一个值是对象,一个是数字或字符串,则尝试使用valueOf()和toString()转换后比较;
      
       (5)其他则不相等。  
      
    • tonumber(undefined) NaN

    • tonumber(null) 0

    • tonumber(string) "123"="123","abc"="NaN"

    相关文章

      网友评论

          本文标题:if(xx)的和a==b的判断

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