<p>
Boolean 類型是 ECMAScript 中使用得最多的一種類型,該類型只有兩個字面值: true 和 false。這兩個值與數字值不是一回事,因此 true 不一定等于 1,而 false 也不一定等于 0。以下是為變量賦Boolean 類型值的例子:
</p>
<pre>var found = true;
var lost = false;</pre>
<p>
需要注意的是,Boolean 類型的字面值 true 和 false 是區分大小寫的。也就是說,True 和 False(以及其他的混合大小寫形式)都不是 Boolean 值,只是標識符。
</p>
<p>
雖然 Boolean 類型的字面值只有兩個,但 ECMAScript 中所有類型的值都有與這兩個 Boolean 值等價的值。要將一個值轉換為其對應的 Boolean 值,可以調用轉型函數 Boolean(),如下例所示:
</p>
<pre>var message = "Hello world!";
var messageAsBoolean = Boolean(message);</pre>
<a href="http://www.shouce.ren/study/api/s/8356" target="_blank" class="btn btn-sm btn-success">運行一下</a><br />
<p>
在這個例子中,字符串 message 被轉換成了一個 Boolean 值, 該值被保存在 messageAsBoolean變量中。可以對任何數據類型的值調用 Boolean()函數,而且總會返回一個 Boolean 值。至于返回的這個值是 true 還是 false,取決于要轉換值的數據類型及其實際值。下表給出了各種數據類型及其對應的轉換規則。
</p>
<p>
<table style="width:100%;" cellspacing="0" cellpadding="2" bordercolor="#000000" border="1">
<tbody>
<tr>
<td>
<strong>數據類型</strong><br />
</td>
<td>
<strong>轉換為true</strong><strong>的值</strong><br />
</td>
<td>
<strong>轉換為false的值</strong><br />
</td>
</tr>
<tr>
<td>
Boolean <br />
</td>
<td>
true <br />
</td>
<td>
false<br />
</td>
</tr>
<tr>
<td>
String <br />
</td>
<td>
任何非空字符串<br />
</td>
<td>
""(空字符串)<br />
</td>
</tr>
<tr>
<td>
Number <br />
</td>
<td>
任何非零數字值(包括無窮大)<br />
</td>
<td>
0和NaN(參見本章后面有關NaN的內容)<br />
</td>
</tr>
<tr>
<td>
Object <br />
</td>
<td>
任何對象<br />
</td>
<td>
null<br />
</td>
</tr>
<tr>
<td>
Undefined <br />
</td>
<td>
n/a①<br />
</td>
<td>
undefined<br />
</td>
</tr>
</tbody>
</table>
這些轉換規則對理解流控制語句(如 if 語句)自動執行相應的 Boolean 轉換非常重要,請看下面的代碼:
</p>
<pre>var message = "Hello world!";
if (message){
alert("Value is true");
}</pre>
<a href="http://www.shouce.ren/study/api/s/8357" target="_blank" class="btn btn-sm btn-success">運行一下</a><br />
<p>
運行這個示例,就會顯示一個警告框,因為字符串 message 被自動轉換成了對應的 Boolean 值(true)。由于存在這種自動執行的 Boolean 轉換,因此確切地知道在流控制語句中使用的是什么變量至關重要。錯誤地使用一個對象而不是一個 Boolean 值,就有可能徹底改變應用程序的流程。
</p>