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表示未定义值。在实际使用中,可以根据具体情况来选择使用哪个值。