if(xx)的判斷
if 語句的語法:
if(condition){ statement }
其中的condition可以是任意表達(dá)式母谎,而且對(duì)這個(gè)表達(dá)式求值的結(jié)果不一定是布爾值盗尸。如果該位置是非布爾值焰檩,JavaScript會(huì)將這個(gè)值自動(dòng)轉(zhuǎn)為布爾值色建。
下面對(duì)這個(gè)condition(判斷條件)做出判斷:
- 布爾值:直接做判斷右钾,true為true鹉究,false為false。
- 字符串:除了空字符串("")為false外诸蚕,都為true步势。(注意:(" ")包含空格的空字符串轉(zhuǎn)換為true氧猬。
- 數(shù)值:除了0以外都是true。注意:+0坏瘩,-0,0.00盅抚,這些都是0的值都是false;NaN的轉(zhuǎn)換的值也為false倔矾。
- undefined:轉(zhuǎn)換為false泉哈。
- null:轉(zhuǎn)換為false。
- 對(duì)象:轉(zhuǎn)換為true破讨。注意:空數(shù)組([ ])和空對(duì)象({ })轉(zhuǎn)換也為true。
(a==b) 相等操作符的判斷
相等操作符用(==)來表示奕纫,在比較相同類型的數(shù)據(jù)時(shí)提陶,與嚴(yán)格相等運(yùn)算符(===)一樣
在比較不同類型的數(shù)據(jù)時(shí),則會(huì)先轉(zhuǎn)換操作數(shù)(通常稱為強(qiáng)制轉(zhuǎn)型)匹层,然后再比較它們的相等性隙笆。
在轉(zhuǎn)換不同的數(shù)據(jù)類型時(shí),遵循下列規(guī)則:
- 如果有一個(gè)操作數(shù)是布爾值升筏,則在比較相等性之前先將其轉(zhuǎn)換為數(shù)值—— false 轉(zhuǎn)換為 0撑柔,而 true 轉(zhuǎn)換為 1;
- 如果一個(gè)操作數(shù)是字符串您访,另一個(gè)操作數(shù)是數(shù)值铅忿,在比較相等性之前先將字符串轉(zhuǎn)換為數(shù)值;
- 如果一個(gè)操作數(shù)是對(duì)象灵汪,另一個(gè)操作數(shù)不是檀训,則調(diào)用對(duì)象的 valueOf ( )方法,用得到的基本類型按照前面的規(guī)則進(jìn)行比較享言;
(在轉(zhuǎn)換時(shí)我們盡量往數(shù)字去帶峻凫,這樣就好對(duì)比是否相等了)
以下比較特殊的比較結(jié)果需要特別注意:
null == undefined //true
NaN == NaN //false
false == undefined //fales
false == null //false
NaN != NaN //true
總結(jié):我們?cè)谧鰯?shù)據(jù)類型的比較時(shí),建議用嚴(yán)格相等操作符(===)進(jìn)行兩個(gè)操作數(shù)的比較览露,用(==)相等操作符有時(shí)會(huì)因個(gè)人的感覺判斷錯(cuò)誤荧琼,所以這是要多多注意的。