从 ES6 到 ES11,理解 JavaScript 中的空值 (null) 和未定义 (undefined) 区别
JavaScript 中的空值 (null) 和未定义 (undefined) 是两个非常容易混淆的概念。在本文中,我们将深入了解它们之间的区别,以及如何避免在编码中犯错。
- Null 和 Undefined 概述
在 JavaScript 中,Null 和 Undefined 都表示“没有值”。但是它们在使用时具有不同的含义。
当您使用 typeof 操作符检查 Null 和 Undefined 时,它们都返回“object”和“undefined”类型,因此 typeof 不适用于检查 Null 和 Undefined 变量的值。
让我们分别进一步了解 Null 和 Undefined:
1.1 Null
Null 表示一个值已被赋值(或者意味着没有值),这个值会显示为 null。当您声明一个变量并且希望它为空,可以将这个变量设置为 null 值,表示该变量已经定义了。
示例代码:
let testVarible = null;
console.log(testVarible); // Output: null
1.2 Undefined
Undefined 表示一个变量已经声明,但是尚未被赋值。 当您声明一个变量但不对其赋值时,它默认值为 undefined。
示例代码:
let testVarible;
console.log(testVarible); // Output: undefined
- Null 和 Undefined 的区别
尽管 Null 和 Undefined 都表示“没有值”,但它们用在不同的场景中,具有不同的含义。
2.1 Null 表示有值,但值为空
Null 表示变量已经定义,但在某些情况下,该值为空。例如,当您想要删除对象的属性时,可以将该属性的值设置为 null。
示例代码:
let user = {name: 'Bob', age: 25};
delete user.name;
console.log(user); // Output: { age: 25 }
2.2 Undefined 表示变量没有赋值或者不存在
Undefined 表示您要使用的变量未被定义或初始化。如果您试图使用未定义的变量,将会抛出 JavaScript 错误。
示例代码:
let testVarible;
console.log(testVarible); // Output: undefined
console.log(testVarible1); // Output: Uncaught ReferenceError: testVarible1 is not defined
- 实际应用示例
3.1 如何正确的赋值
在声明变量时,应将变量初始化为 null 或定义变量。这样,您可以在必要时对变量进行检查,而不会在代码中引发错误。
示例代码:
let testVarible = null;
if (testVarible === null || typeof testVarible === 'undefined') {
console.log('The variable is null or undefined.');
} else {
console.log('The variable has been defined and is not null or undefined.');
}
3.2 如何避免 JavaScript 错误
当您使用变量时,请始终检查该变量是否已定义,并验证它是否为 null 值。这将有助于防止在代码中使用未定义的变量,从而引发 JavaScript 错误。
示例代码:
let testVarible;
if (typeof testVarible !== 'undefined' && testVarible !== null) {
console.log('The variable has been defined and is not null or undefined.');
} else {
console.log('The variable is null or undefined.');
}
- 总结
在 JavaScript 中,Null 和 Undefined 都表示“没有值”,但在使用时具有不同的含义。Null 表示变量已经定义,但该值为空,Undefined 表示您要使用的变量未被定义或未初始化。正确地使用它们,可以避免在编程时引发 JavaScript 错误。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c88f075ad90b6d0413ffe4