在 JavaScript 中,null 和 undefined 有什么区别?

2022-08-29 21:59:36

我想知道 JavaScript 和 JavaScript 之间的区别是什么。nullundefined


答案 1

在 JavaScript 中,表示变量已声明但尚未赋值,例如: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

从前面的示例中可以清楚地看出,并且是两种不同的类型:是类型本身(未定义),而它是对象。undefinednullundefinednull

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

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

答案 2

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

  • 非零值就像一个拿着一卷卫生纸的支架,管子上还有纸巾。

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

  • 零值就像一个甚至没有组织管的支架。

  • 未定义的值类似于持有者本身缺失。