undefined 和 null 究竟有何区别?

154 阅读1分钟

undefined 和 null 究竟有何区别?

undefined 和 null都表示为空,但不同的是。 null表示一个空值,是当一个变量被赋值为null时,它表示变量的值为空。

undefined表示一个未定义的值,这意味着变量已经声明了但没有赋值,或者属性不存在于对象中。

以下是它们的主要区别:

赋值:null是可以显式地赋值给一个变量的,表示该变量为空。undefined则是被默认赋值给尚未被赋值的变量。

let x = null;
let y;
console.log(x); // null
console.log(y); // undefined

类型:null是一个表示空值的对象,它的类型是"object"。而undefined是一个表示未定义值的原始数据类型,它的类型是"undefined"。

console.log(typeof null); // "object"
console.log(typeof undefined); // "undefined"

对象属性:如果对象的属性不存在,对应的值会被自动设置为undefined。

let obj = {};
console.log(obj.property); // undefined

判断:在条件判断中,null和undefined被视为假值,它们会被自动转换为false。

let x = null;
let y;
if (x || y) {
  // 这段代码不会执行
}

if (!x && !y) {
  // 这段代码会执行
}

总的来说,null用于表示有意设置为空的值,而undefined表示未定义值。在实际使用中,可以根据具体情况来选择使用哪个值。