# if(xx)
| 類型? ?|? 判斷? ?|
|---------|----------|
|undefined|false|
|null|false|
|number|+0 -0 NaN為false,其余為true|
|boolean| 對(duì)應(yīng)的false,true|
|string|空字符串為false 其余為true|
|object|ture|
# a==b的判斷
????相等運(yùn)算符用來比較相同類型的數(shù)據(jù)時(shí),與嚴(yán)格相等運(yùn)算符完全一樣。比較不同類型的數(shù)據(jù)時(shí),相等運(yùn)算符會(huì)先將數(shù)據(jù)進(jìn)行類型轉(zhuǎn)換,然后再用嚴(yán)格相等運(yùn)算符比較。
##?原始類型的數(shù)據(jù)會(huì)轉(zhuǎn)換成數(shù)值類型再進(jìn)行比較? ??
比如"1" == 1 字符串"1"會(huì)被轉(zhuǎn)換成數(shù)值1? 所有這個(gè)為true
比如"" == false? ? ? 0 == false? ? 所以"" == 0? 就成為了true 也可以認(rèn)為 ""? 被轉(zhuǎn)換為了0
##??對(duì)象(這里指廣義的對(duì)象,包括數(shù)組和函數(shù))與原始類型的值比較時(shí),對(duì)象轉(zhuǎn)化成原始類型的值,再進(jìn)行比較。
? ? 比如[2]會(huì)被轉(zhuǎn)換為2所以 [2] == 2 為true
##?undefined和null與其他類型的值比較時(shí),結(jié)果都為false,它們互相比較時(shí)結(jié)果為true。
一般來說==這個(gè)比較會(huì)帶來一些錯(cuò)覺,最好是用===這樣的絕對(duì)比較可以比較準(zhǔn)確的來進(jìn)行比較。