# if(xx)
| 类型 | 判断 |
|---------|----------|
|undefined|false|
|null|false|
|number|+0 -0 NaN为false,其余为true|
|boolean| 对应的false,true|
|string|空字符串为false 其余为true|
|object|ture|
# a==b的判断
相等运算符用来比较相同类型的数据时,与严格相等运算符完全一样。比较不同类型的数据时,相等运算符会先将数据进行类型转换,然后再用严格相等运算符比较。
## 原始类型的数据会转换成数值类型再进行比较
比如"1" == 1 字符串"1"会被转换成数值1 所有这个为true
比如"" == false 0 == false 所以"" == 0 就成为了true 也可以认为 "" 被转换为了0
## 对象(这里指广义的对象,包括数组和函数)与原始类型的值比较时,对象转化成原始类型的值,再进行比较。
比如[2]会被转换为2所以 [2] == 2 为true
## undefined和null与其他类型的值比较时,结果都为false,它们互相比较时结果为true。
一般来说==这个比较会带来一些错觉,最好是用===这样的绝对比较可以比较准确的来进行比较。