📜  JavaScript 中未声明变量和未定义变量的区别(1)

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

JavaScript 中未声明变量和未定义变量的区别

在 JavaScript 中,未声明变量和未定义变量是两个不同的概念。在使用变量之前,应该先声明变量,否则有可能会遇到一些问题。

未声明变量

未声明变量是指在代码中直接使用没有声明的变量,这种情况会抛出 ReferenceError 错误。例如:

// 未声明变量
console.log(x); // ReferenceError: x is not defined

上面的代码会抛出一个 ReferenceError 错误,提示我们 x 没有被声明过。

未声明变量的问题很容易被发现和解决,因为会直接抛出错误。

未定义变量

未定义变量是指在代码中声明了变量,但是没有给它赋值,这种情况下变量的值默认是 undefined。例如:

// 声明一个变量,但没有给它赋值
let x;
console.log(x); // undefined

上面的代码会输出 undefined,因为变量 x 虽然被声明了,但是没有被赋值,所以它的值是 undefined。如果我们在使用未定义变量时,就会得到相应的结果:

// 声明一个变量,但没有给它赋值
let x;
console.log(x + 1); // NaN

上面的代码会输出 NaN,因为 undefined 与任何数字相加都得到 NaN。这种情况下没有直接报错,但是结果却不符合我们的预期。

总结

在 JavaScript 中,未声明变量和未定义变量是两个不同的概念。未声明变量会直接抛出错误,而未定义变量会默认赋值为 undefined。在使用变量之前,应该先声明变量并赋值,避免出现意料之外的结果。