大家都知道,在 JavaScript 语言中有两个表示"空"的值:null 和 undefined。
那么为什么 js 会同时提供两个这样的值呢?这牵扯到JavaScript这门语言在诞生初期的一些历史问题。
最初设计
在 JavaScript 的最初版本中:null 是一个表示"无"的对象,转为数值时为 0;undefined 是一个表示"无"的原始值,转为数值时为 NaN。
目前用法
目前,null 和 undefined 基本是同义的,只有一些细微的差别:
- null 表示"没有对象",即该处不应该有值。
- undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。