<p>
Null 類型是第二個只有一個值的數據類型,這個特殊的值是 null。從邏輯角度來看, null 值表示一個空對象指針,而這也正是使用 typeof 操作符檢測 null 值時會返回"object"的原因,如下面的例子所示:
</p>
<pre>var car = null;
alert(typeof car); // "object"</pre>
<a href="http://www.shouce.ren/study/api/s/8354" target="_blank" class="btn btn-sm btn-success">運行一下</a><br />
<p>
如果定義的變量準備在將來用于保存對象,那么最好將該變量初始化為 null 而不是其他值。這樣一來,只要直接檢查 null 值就可以知道相應的變量是否已經保存了一個對象的引用,如下面的例子所示:
</p>
<pre>if (car != null){
// 對 car 對象執行某些操作
}</pre>
實際上, undefined 值是派生自 null 值的,因此 ECMA-262 規定對它們的相等性測試要返回 true:<br />
<pre>alert(null == undefined); //true</pre>
<a href="http://www.shouce.ren/study/api/s/8355" target="_blank" class="btn btn-sm btn-success">運行一下</a><br />
<p>
這里,位于 null 和 undefined 之間的相等操作符(==)總是返回 true,不過要注意的是,這個操作符出于比較的目的會轉換其操作數(本章后面將詳細介紹相關內容)。
</p>
<p>
盡管 null 和 undefined 有這樣的關系,但它們的用途完全不同。如前所述,無論在什么情況下都沒有必要把一個變量的值顯式地設置為 undefined,可是同樣的規則對 null 卻不適用。換句話說,只要意在保存對象的變量還沒有真正保存對象,就應該明確地讓該變量保存 null 值。這樣做不僅可以體現 null 作為空對象指針的慣例,而且也有助于進一步區分 null 和 undefined。
</p>