从 ES6 到 ES11,理解 JavaScript 中的空值 (null) 和未定义 (undefined) 区别

阅读时长 4 分钟读完

从 ES6 到 ES11,理解 JavaScript 中的空值 (null) 和未定义 (undefined) 区别

JavaScript 中的空值 (null) 和未定义 (undefined) 是两个非常容易混淆的概念。在本文中,我们将深入了解它们之间的区别,以及如何避免在编码中犯错。

  1. 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

  1. 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

  1. 实际应用示例

3.1 如何正确的赋值

在声明变量时,应将变量初始化为 null 或定义变量。这样,您可以在必要时对变量进行检查,而不会在代码中引发错误。

示例代码:

let testVarible = null;

if (testVarible === null || typeof testVarible === 'undefined') {

} else {

}

3.2 如何避免 JavaScript 错误

当您使用变量时,请始终检查该变量是否已定义,并验证它是否为 null 值。这将有助于防止在代码中使用未定义的变量,从而引发 JavaScript 错误。

示例代码:

let testVarible;

if (typeof testVarible !== 'undefined' && testVarible !== null) {

} else {

}

  1. 总结

在 JavaScript 中,Null 和 Undefined 都表示“没有值”,但在使用时具有不同的含义。Null 表示变量已经定义,但该值为空,Undefined 表示您要使用的变量未被定义或未初始化。正确地使用它们,可以避免在编程时引发 JavaScript 错误。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c88f075ad90b6d0413ffe4

纠错
反馈