Null 和 Undefined 的区别

119 阅读1分钟

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