Boolean類型
Boolean類型是JavaScript中使用的最多的一種類型,該類型隻有兩個字面值:true和false。這兩個值與數字值不是一回事,是以true不一定等于1,而false也不一定等于0。以下是為變量指派Boolean類型值的例子:
var found = true;
var lost = false;
需要注意的是Boolean類型的字面值true和false是區分大小寫的。也就是說True和False(或者其它混合大小寫形式)都不是Boolean類型的值,隻是辨別符。
雖然Boolean類型的字面值隻有兩個,但ECMAScript中所有類型值,都有于這兩個Boolean值等價的值。要将一個值轉換為其對應的Boolean值,可以調用類型轉換函數Boolean(),如下所示:
var msg = 'hello world';
var msgAsBool = Boolean(msg);
console.log(msgAsBool);//true
在這個例子中,字元串msg被轉換成了Boolean值,該值被儲存在msgAsBool變量中。可以對任何資料類型的值調用Boolean()函數,而且總會傳回一個Boolean值,至于傳回的是true還是false,取決于要轉換值的資料類型及其實際值。下表給出了各種資料類型及其對應的轉換規則。
資料類型 | 轉換為true的值 | 轉換為false的值 |
---|---|---|
Boolean | true | false |
String | 任何非空字元串 | 空字元串 |
Number | 任何非零的數值(包括無窮大) | 0和NaN |
Object | 任何對象 | null |
Undefined | 無 | undefined |
這些轉換規則對了解流控制語句自動執行相應的Boolean轉換非常重要,看下面的代碼:
var msg = 'hello world';
if(msg){
console.log('value is true');
}
運作這段代碼,就會顯示一個列印輸出 value is true,因為字元串msg被自動轉換成了對應的Boolean值true,由于存在這種自動執行的Boolean轉換,是以确切的知道在流控制語句中使用的是什麼變量至關重要。錯誤使用一個對象而不是一個Boolean值,就有可能徹底改變應用程式流程。