在js中,任何數據類型都可轉換成Boolean類型,所以理論上任何數據類型都可以放在if條件判斷中。衆所周知,js對於非Boolean類型的真假判斷比較模糊,當然也可以通過Boolean()
函數顯示判斷當前數據類型的布爾值,比如:
var str = "Hello";
console.log(Boolean(str)); // output: true.
以下對於各非Boolean類型轉成布爾值做個總結:
數據類型 | 轉換爲true值 | 轉換爲false值 |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | ”“ (空字符串) |
Number | 任何非零數字值(包括無窮大Infinity ) |
0和NaN |
Object | 任何對象 | null (空對象指針) |
Undefined | n/a或N/A |
undefined |
有一點需要補充的是NaN
這個比較特殊,他跟任何數據都不想等包括自己,如:
console.log(NaN==NaN); // output: false
參考:
js紅寶書 3.4.4 小節。