if(xx)
对于if(xx),是把xx转换成boolean在进行判断
各类型转换布尔结果:
类型 | 转换后结果 |
---|---|
Undefined | false |
Null | false |
Boolean | 直接判读 |
Number | -0,+0,NaN为false,其他的为true |
String | 空串("")为false,其他的为true,需要注意的是空白字符串(" ")也是为true |
Object | true |
a==b
对于a==b,是将两边转换成数值进行判断
各类型转换成数值结果:
类型 | 转换后结果 |
---|---|
Undefined | 不转换 |
Null | 不转换 |
Boolean | true为1,false为0 |
Number | 即为数值 |
String | 空串("")为0,空白字符串(" ")也是为0;“123”类型的字符串为里面的数值,“hello”类型的字符串为NaN |
Object | 根据valueOf或toString转换 |