浅谈:js 中 null,undefined 到底是什么?

127 阅读1分钟

大家都知道,在 JavaScript 语言中有两个表示"空"的值:null 和 undefined。

那么为什么 js 会同时提供两个这样的值呢?这牵扯到JavaScript这门语言在诞生初期的一些历史问题。

最初设计

在 JavaScript 的最初版本中:null 是一个表示"无"的对象,转为数值时为 0;undefined 是一个表示"无"的原始值,转为数值时为 NaN。

目前用法

目前,null 和 undefined 基本是同义的,只有一些细微的差别:

  1. null 表示"没有对象",即该处不应该有值。
  2. undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。

参考资料

  1. undefined与null的区别
  2. null, undefined 和布尔值
  3. 「深入本质」你真的理解undefined和null吗