在 JavaScript 中,null 和 undefined 都表示缺少值,但它们的语义不同,有些细微的区别。
undefined 表示一个变量声明了但没有被赋值的情况,或者一个对象属性不存在时返回的值。例如:
let x;
console.log(x); // undefined
let obj = {};
console.log(obj.foo); // undefined
在上面的例子中,我们声明了变量 x,但没有给它赋值,此时 x 的值为 undefined。我们还定义了一个空对象 obj,并尝试获取它的属性 foo 的值,因为该属性不存在,所以返回的值是 undefined。
另外,在函数中没有返回值时,函数返回的值也是 undefined。例如:
function foo() {
// 没有返回值
}
console.log(foo()); // undefined
null 表示一个变量被明确地赋值为空值,或者一个对象属性被明确地赋值为 null。例如:
let y = null;
console.log(y); // null
let obj = { foo: null };
console.log(obj.foo); // null
在上面的例子中,我们将变量 y 赋值为 null,此时 y 的值就是 null。我们还定义了一个对象 obj,并将其属性 foo 的值赋为 null,因此访问 obj.foo 的值时返回的是 null。
总的来说,undefined 表示一个变量或属性的值还没有被定义或初始化,而 null 表示一个变量或属性的值已经明确地赋值为空。
正文完