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

if(xx)的判断

if语句是编程语言最常用的语句,语法如下

if(xx){
    //true statement
}else {
    //false statement
}

其中xx可以是任意表达式,结果不一定是布尔值,JavaScript解释器会自动调用Boolean()将表达式结果转为布尔值,如果表达式为真执行第一个代码块内语句,如果为假执行第二个代码块内语句。

即xx的返回值一定是布尔值,各类型的布尔值转化如下:

  • Number为+0, −0,或者 NaN 时为 false,其他为true
  • String 空串("")为false,其他的为true,需要注意的是空白字符串(" ")也是为true
  • Undefined和Null为false,Object为true

a == b的判断

  1. 当a和b的值是同类型时会直接判断。
    2.当a和b的值不同类型时会转化后比较,可以简单理解成转化为1和0进行比价,转化如下:
  • Boolean true为1,false为0
  • Object 根据valueOf或toString转换
  • String 空串("")为0,空白字符串(" ")也是为0;“123”类型的字符串为里面的数值,“hello”类型的字符串为NaN
  • null和undefined不转换,但相等

你可能感兴趣的:(if(xx)和 a==b的判断)