數據類型 | 轉換為true的值 | 轉換為false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空字符串 | ""空字符串 |
Number | 任何非0數字值(包括無窮大) | 0和NaN |
Object | 任何對象 | null |
Undefined | n/a | undefined |
數組屬於對象類型,所以空的數組轉換成布爾型是true
相同的是,空的對象轉換成布爾型也是true
1.
空數組[]和空對象{}都是object類型,因此直接用於if判斷條件時就會被轉化為true。
2.
任意值與布爾值比較,都會將兩邊的值轉化為Number。
注意:
如果將空數組[]與布爾值false比較,false轉化為0,而空數組[]也轉化為0,因此[] == false的判斷得到true。
如果將空對象{}與布爾值false比較,false轉化為0,而空對象{}轉化為NaN,由於NaN與任何數都不相等,因此{} == false的判斷得到false。