在 JavaScript 中,null
和 undefined
都是用来表示缺少值的,但它们之间有一些关键的区别:
-
undefined:
- 在 JavaScript 中,
undefined
表示声明了但未赋值的变量,或者访问对象属性时不存在的属性。 - 未初始化的变量默认具有
undefined
值。 - 作为函数参数的默认值时,如果调用函数时未传递该参数,则该参数的值为
undefined
。 undefined
是一个原始值,而不是关键字。
- 在 JavaScript 中,
-
null:
null
是一个表示空值或者不存在的对象。- 当你想明确地表示一个变量应该是空的时候,可以将其赋值为
null
。 - 在 JavaScript 中,
null
是一个特殊的对象值。它表示一个空对象引用。
总结一下:
undefined
表示一个变量已经声明了但是尚未被赋值,或者在对象中寻找一个不存在的属性时返回的值。null
表示一个变量被赋值为空对象,它是 JavaScript 中的一个特殊对象。
举个例子:
javascript
let foo; // 声明一个变量但未赋值,默认为 undefined
console.log(foo); // 输出 undefined
let obj = { bar: null }; // 声明一个对象,其中的属性 bar 被赋值为 null
console.log(obj.bar); // 输出 null
console.log(obj.baz); // 输出 undefined,因为 baz 属性并不存在于对象中
在 JavaScript 中,处理 undefined
和 null
的方式有时候会有所不同,因此了解它们之间的区别是很重要的。