null 与 undefined
在 JavaScript 中,null
和 undefined
是两个特殊的值,它们表示缺少值或不存在的值。虽然它们有相似之处,但它们在某些方面是不同的:
-
undefined:
undefined
表示一个变量已经声明,但尚未被赋值,或者一个对象没有指定的属性。- 当你声明一个变量但没有为其赋值时,该变量的默认值是
undefined
。 - 访问对象中不存在的属性时,也会返回
undefined
。
示例:
let x; // 声明一个变量,但未赋值,x 是 undefined const obj = {}; // 创建一个空对象 console.log(obj.property); // 访问不存在的属性,返回 undefined
-
null:
null
表示一个变量的值被明确地设置为没有值,通常是开发者显式赋予的。null
通常用于表示一个空对象,表示没有对象引用。
示例:
const person = null; // 表示没有一个人对象
总结:
undefined
通常表示一个值未定义或未初始化。null
通常表示一个变量被显式地设置为没有值或一个对象被销毁,不再引用。- 在条件比较时,
undefined
和null
都被视为“假值”(falsy),即在布尔上下文中被视为false
。
注意:虽然 null
和 undefined
在某些情况下可以互换使用,但它们在含义上是不同的,因此在编写代码时应根据具体需求来选择使用哪个值。