区别:
- null表示定义了但是是空值,underfined表示未定义。
- underfined通过typeof判断类型为“underfined”,而null判断类型为“object”。
- underfined转换为数值时是NaN,null转换为数值时是0。
<script>
console.log(undefined + 10);//NaN
console.log(null + 10);//10
console.log(undefined == null);//true
console.log(undefined === null);//false
console.log(undefined !== null);//true
</script>
null == undefined
null !== undefined
undefined用法:
①变量声明未赋值,结果为undefined。
②一个函数定义了形参,但是没有传递实参的,该参数等于undefined。
③对象没有赋值的属性,该属性的值为undefined。
④函数没有返回值时,默认返回undefined;
null用法:
①作为函数的参数,表示该函数的参数不是对象。
②作为对象原型链的终点。
<script>
var a;
console.log(a); //underfined
function b(c){
console.log(c);
}
b(); //underfined
var e = {};
console.log(e.f);//underfined
function m() {
};
console.log(m());//underfined
</script>
相似性:
null和underfined都是原始数据类型,在if语句中,都会被自动转为false,相等运算符甚至直接报告两者相等。
<script>
if (undefined) {
console.log('ok');
} else {
console.log('no');
}//no
if (null) {
console.log('ok');
} else {
console.log('no');
}//no
</script>
让属性变为null:
先定义,再赋空值。