Null 和 Undefined 都是基本数据类型,这两个基本数据类型分别都只有一个值,就是 null 和 undefined。
- null 表示空对象,即该处不应该有值
- 作为函数的参数,表示该函数的参数不是对象
- 作为对象原型链的终点
Object.prototype.__proto__ === null
- undefined 表示缺少值,即该处应该有值,但是没有定义,分为以下几种情况
- 定义了形参,没有传实参,显示 undefined
- 对象属性名不存在时,显示 undefined
- 函数没有返回值,即没有写 return,得到的是 undefined
- 函数写了 return,但是没有赋值吗,得到的是 undefined
- null 和 undefined 转换成 Number 数据类型
- null 默认转换成 0
- undefined 默认转换成 NaN
Number(null); // 0 Number(undefined); // NaN