📜  JavaScript 中的未定义与空值(1)

📅  最后修改于: 2023-12-03 15:01:40.596000             🧑  作者: Mango

JavaScript 中的未定义与空值

在 JavaScript 中,我们经常需要处理未定义和空值的情况。在这篇文章中,我们将介绍 JavaScript 中的未定义和空值以及如何处理它们。

未定义变量

如果使用未定义的变量,JavaScript 会抛出一个 ReferenceError。

console.log(foo); // ReferenceError: foo is not defined

为了避免这种情况,我们需要确保变量已经声明并初始化。

let foo = "bar";
console.log(foo); // "bar"
未定义属性

当尝试访问未定义的对象或数组属性时,JavaScript 会返回 undefined。

let obj = {foo: "bar"};
console.log(obj.bar); // undefined

这种情况下,我们可以使用 Optional chaining (?.) 来避免 TypeError。

console.log(obj.bar?.baz); // undefined
null

在 JavaScript 中,null 表示一个空对象指针。它与 undefined 不同,因为它是一个有效值。通常我们将 null 用于表示缺少值。

let foo = null;
console.log(foo); // null
undefined

在 JavaScript 中,undefined 表示一个缺少值。当访问未定义变量或对象属性时,JavaScript 会返回 undefined。也可以将变量显式设置为 undefined。

let foo;
console.log(foo); // undefined

let obj = {foo: "bar"};
console.log(obj.baz); // undefined

foo = undefined;
console.log(foo); // undefined
判断未定义和空值

我们可以使用 typeof 来判断一个变量是否未定义或空值。

let foo;

console.log(typeof foo); // "undefined"

foo = null;
console.log(typeof foo); // "object"

foo = "";
console.log(typeof foo); // "string"

foo = 0;
console.log(typeof foo); // "number"

foo = false;
console.log(typeof foo); // "boolean"

我们还可以使用严格相等运算符 (===) 来判断一个变量是否具有特定值。

let foo;

console.log(foo === undefined); // true

foo = null;
console.log(foo === null); // true

foo = "";
console.log(foo === ""); // true

foo = 0;
console.log(foo === 0); // true

foo = false;
console.log(foo === false); // true
总结

在 JavaScript 中,我们需要经常处理未定义和空值的情况。在代码中使用 typeof 和严格相等运算符可以帮助我们正确地识别这些情况。此外,使用 Optional chaining (?.) 可以避免访问未定义对象或数组属性时出现 TypeError。