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