理解Null和Undefined

null == 0; // false
undefined == ""; // false
null == false; // false
undefined == false; // false
null == undefined; // true

儘管如此,和其餘類似之處,但null和undefined並非等價的。每一個做爲其獨特的類型的惟一成員,undefined是Undefined類型和null是Null類型。使用全等操做符(===)比較這兩個值,這要求類型和值都相等,下面證實這一點:數組

undefined === null; // false
在JavaScript這種動態的弱類型語言中,只會默認返回一個undefined值,而不是上升爲一個錯誤。
任何聲明變量時沒有提供一個初始值,都會有一個爲undefined的默認值:
var foo; // 默認值爲 undefined

當試圖訪問一個不存在的對象屬性或數組項時,返回一個undefined值:函數

var array = [1, 2, 3];
var foo = array.foo; // foo 屬性不存在, 返回 undefined
var item = array[5]; // 數組中沒有索引爲5的項,返回 undefined

若是省略了函數的返回語句,返回undefined:spa

var value = (function(){})(); // 返回 undefined

函數調用時未提供的值結果將爲undefined參數值:code

(function(undefined){
    // 參數是 undefined
})();
相關文章
相關標籤/搜索