JavaScript 中的 null 和 undefined 有什么区别?

新手上路,请多包涵

我想知道 JavaScript 中的 nullundefined 有什么区别。

原文由 user605334 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

undefined 表示变量已被声明但尚未被赋值:

 var testVar;
 alert(testVar); //shows undefined
 alert(typeof testVar); //shows undefined

null 是一个赋值。它可以分配给一个变量作为没有值的表示:

 var testVar = null;
 alert(testVar); //shows null
 alert(typeof testVar); //shows object

从前面的示例中,很明显 undefinednull 是两种不同的类型: undefined 是一个类型本身(未定义),而 null 是一个对象。

 null === undefined // false
 null == undefined // true
 null === null // true

null = 'value' // ReferenceError
 undefined = 'value' // 'value'

原文由 sebastian 发布,翻译遵循 CC BY-SA 4.0 许可协议

差异可以用卫生纸架来解释:

  • 非零值就像一个装有一卷厕纸的支架,而管上还有纸巾。

  • 零值就像带有空卫生纸管的支架。

  • 空值就像一个连纸巾管都没有的支架。

  • 未定义的值类似于 holder 本身丢失。

原文由 Sebastian Norr 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题