📅  最后修改于: 2023-12-03 15:03:18.345000             🧑  作者: Mango
在 JavaScript 中,null
和 undefined
均表示某个变量未被赋值或者没有值。但它们之间有一些差别,本文将会介绍它们各自的含义、用法以及区别。
undefined
undefined
常常被用来表示变量尚未赋值,或者对象中不存在某个属性。例如:
let a;
console.log(a); // undefined
let obj = {};
console.log(obj.foo); // undefined
此外,函数调用时未提供参数,参数值默认为 undefined
。例如:
function foo(bar) {
console.log(bar);
}
foo(); // undefined
undefined
可以被用来判断某个变量是否被赋值。例如:
let a;
if (typeof a === 'undefined') {
console.log('a is not defined');
}
null
null
常常被用来表示某个对象不存在或者没有值。例如:
let obj = null;
与 undefined
不同的是,null
是一个被赋予了特定意义的值,表示该变量的值为“空”。例如:
let a = null;
console.log(a); // null
而对于未赋值的变量,建议使用 undefined
表示其没有值。
虽然 null
和 undefined
均表示某个变量没有值,但它们有区别:
undefined
表示变量存在,但其值为“空”;null
表示该变量本身就不存在。例如:
let a;
console.log(typeof a); // "undefined"
let b = null;
console.log(typeof b); // "object"
此外,当使用非严格模式下的相等运算符 ==
来比较 null
和 undefined
时,它们会相等。但在严格模式下的相等运算符 ===
中,null
和 undefined
是不相等的。因此,在比较变量时,建议使用严格模式下的相等运算符。例如:
let a = null;
let b;
console.log(a == b); // true
console.log(a === b); // false
undefined
常常用来表示变量尚未被赋值,或者对象中不存在某个属性;null
常常用来表示某个对象不存在或者没有值;undefined
和 null
之间有差别,但它们的相等性在非严格模式下会被认为相等,在严格模式下不相等。