Boolean類型是JavaScript原始數據類型(primitive type)之一;常用來表示 真或假,是或否;這個類型只有兩個值:保留字true和false
一般用於控制語句:如下
if(Boolean){ //do something console.log('true') }else{ //do something console.log('false') }
JavaScript的其他數據類型都可以轉換成Boolean類型,注意!!!只有這幾種類型會轉換為false
- undefined
- null
- 0
- -0
- NaN
- "" (空字符串)
其他的都會轉換為true。空對象{},空數組[] , 負數 ,false的對象包裝等
if(-1){ console.log('-1轉換為true'); } if({}){ console.log('{}轉換為true'); } if([]){ console.log('[]轉換為true'); } if(new Boolean(false)){ console.log('new Boolean(false)轉換為true'); }
終於到了重點,new Boolean(false)是布爾值的包裝對象 typeof (new Boolean(false)) // 'object' ,所以 轉換為boolean是true,而不是false
我們知道,原始數據類型是沒有方法的, 但是我們卻可以有如下用法
true.toString() //'true'
這是因為,在對原始類型使用方法時,會自動通過Boolean()構造一個臨時對象,訪問的方法均來自這個臨時對象,同樣的數字和字符串對應有Number()和String() 所以都可以調用方法如(toString());而 undefined 和 null 沒有對應的包裝對象,所以訪問他們的屬性會報錯,如下。