📅  最后修改于: 2023-12-03 15:01:40.596000             🧑  作者: Mango
在 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
在 JavaScript 中,null 表示一个空对象指针。它与 undefined 不同,因为它是一个有效值。通常我们将 null 用于表示缺少值。
let foo = null;
console.log(foo); // null
在 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。