js中null和undefined的区别

36次阅读
没有评论

在 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 表示一个变量或属性的值已经明确地赋值为空。

正文完
 
评论(没有评论)