if(xx)和a==b的判断
2018-08-30 本文已影响3人
墙上的土豆会开花
if(xx)
对于括号内的表达式会被强制转换为布尔类型
转换原理
类型 | 结果 |
---|---|
Undefined | false |
Null | false |
Boolean | 直接判断 |
Number | 0.00,+0,-0或者NaN为false,其他为true |
String | 空字符串为false,其他为true |
Object | true |
a==b
在js判断两个变量值是否相等,可以使用==相等或===严格相等操作符。
==判断两个值是否相等,相同类型直接比较,不同类型需要对类型进行转换再比较。
原理
X | Y | 结果 |
---|---|---|
Null | Undefined | true |
Number | String | X==toNumber(y) |
Boolean | (ang) | toNumber(x)==Y |
OBject | String of Number | toPrimitive(x)==Y |
Otherwise | Otherwise | false |
TO Number
type | Result |
---|---|
Undefined | NaN |
Null | 0 |
Boolean | true→1,false→0 |
String | “abc”→NaN,“123”→123 |
TO Primitive
对于Object类型,先尝试调用Valae of方法获取结果,如果没有定义,再尝试调用,to string方法获取结果。