null 表示 无 的对象,也就是此处不应该有值;而 undefined 表示未定义。
<script>
console.log(typeof null); // object
</script>
在转换数字的时候,Number(null) 为 0,而 Number(undefined) 为 NaN。
使用场景细分如下:
null:
-
作为函数的参数,表示该函数的参数不是对象。
-
作为对象原型链的终点。
Object.prototype.__proto__ === null
undefined:
-
变量被声明但是没有赋值,等于 undefined。
-
调用函数时,对应的参数没有提供,也是 undefined。
-
函数没有返回值,默认返回 undefined。
-
对象没有赋值,这个属性的值为 undefined。