当我们在代码中使用一个变量时,JavaScript 会在执行过程中将该变量声明提升到当前作用域的顶部。这意味着我们可以在声明变量之前使用它们,但是如果我们访问未声明的变量,则会抛出 ReferenceError 错误。
例如:
console.log(a); // 输出 undefined var a = 1;
这里我们首先尝试打印变量 a,但它未定义。由于 JavaScript 在代码执行之前会将变量声明提升到作用域的顶部,因此这段代码不会抛出错误,而是输出 undefined。
但是,如果我们尝试访问未声明的变量,则会抛出 ReferenceError 错误:
console.log(b); // 抛出错误:ReferenceError: b is not defined
因此,变量提升不会导致打印,但是如果我们访问未声明的变量,则会抛出一个错误。为避免此类错误,请在使用变量之前始终声明它们。
下一篇:变量提升和闭包 - 困惑