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转换 |