if(xx)
對于if(xx),是把xx轉換成boolean在進行判斷
如果括號內是boolean焚虱,直接判斷阶牍。否則括號里的表達式會被強制轉換成boolean,轉換規(guī)則如下:
1.if(number)
當 if(number)竿痰,+0,-0,NaN會被轉換為false褪测,其他會被轉換為true
1.jpg
2.if(string)
當 if(string),空字符串為false,其他為true
2.jpg
3.if(boolean)
當 if(boolean)阁将,直接判斷
3.jpg
4.if(object)
當 if(object)膏秫,轉換為true
4.jpg
5.if(undefined)
當 if(undefined),轉換為false
5.jpg
6.if(null)
當 if(null)做盅,轉換為false
6.jpg
a==b
對于a==b缤削,是將兩邊轉換成數(shù)值進行判斷
對于相同類型的a、b吹榴,相等的判斷較簡單亭敢。以下主要討論不同數(shù)據(jù)類型的a、b之間進行相等運算時的判斷
-
string == number
結果為 toNumber(a) == b 图筹,當a無法轉換為number時判斷相等為false
7.jpg boolean == (any)
Boolean在相等運算時會轉換為數(shù)值帅刀,true為1,false為0远剩。
8.jpg
- object == number/string
object會試圖使用valueOf和toString轉換后比較
9.jpg
- null == undefined //true