undefined表示變量聲明但未初始化時的值,
null表示准備用來保存對象,還沒有真正保存對象的值。從邏輯角度看,null值表示一個空對象指針。
JavaScript(ECMAScript標准)裡共有5種基本類型:Undefined, Null, Boolean, Number, String,和一種復雜類型Object。可以看到null和undefined分屬不同的類型,未初始化定義的值用typeof檢測出來是"undefined"(字符串),而null值用typeof檢測出來是"object"(字符串)。
任何時候都不建議顯式的設置一個變量為undefined,但是如果保存對象的變量還沒有真正保存對象,應該設置成null。
實際上,undefined值是派生自null值的,ECMAScript標准規定對二者進行相等性測試要返回true,即
alert(null==undefined); // true