if的判断
对于括号里的表达式,会被强制转换为布尔类型:
当 if(number),0、NaN为false,其他值为true
当 if(string),空字符串为false,其他为true
当 if(boolean),直接判断
当 if(object),为true
当 if(undefined),为false
当 if(null),为false
a==b的判断
- string==number
判断为:toNumber(a)==b,如果a无法转换成number类型判断为false。
其中toNumber(undefined)的结果为NaN、toNumber(null)的结果为0。
2.(any)==boolean
在boolean类型转换中,true为1,false为0。
3.Object==number/string
object会使用valueOf和toString转换后再进行比较。
- null == undefined //true
toNumber
undefined --> NaN
null --> 0
boolean --> true:1, false:0
string --> "abc":NaN,"123":123