NUll:
null 是 js 中的關鍵字,表示空值. null 可以看做是 object 的一個特殊的值, 如果一個object值爲空,表示這個對象不是有效對象
Undefined:
undefined不是js 中的關鍵字, 其是一個全局變量. 是Global的一個屬性,以下情況會返回undefined:
1) 使用是一個未定義的變量; var i;
2) 使用了已定義但爲聲明的變量;
3) 使用了一個對象屬性,但該屬性不存在或者未賦值
4) 調用函數時,該提供的參數沒有提供:
function numb(aa){
alert(aa);
};
numb(); //undefined
5) 函數沒有返回值時,默認返回undefined
var bb = numb();
alert(bb);// Undefined
相同點:
都是原始類型的值,保存在棧中變量本地
兩者的區別:
1.類型不一樣:
console.log(typeOf undefined);//undefined
console.log(typeOf null);//object
2.轉化爲值時不一樣:undefined爲NaN ,null爲0
console.log(Number(undefined));//NaN
console.log(Number(null));//0
3. undefined===null; //false
Undefined 值是派生自 null 值
undefined==null; //true