-
变量提升是指在 JavaScript 代码执行前,JavaScript 引擎会将函数声明和变量声明的语句提升到当前作用域的顶部。这就意味着,在声明之前,这些变量和函数就已经可以被访问并使用了。
-
在 JavaScript 中,变量提升的规则和作用域有关。JavaScript 共有两种作用域:全局作用域和函数作用域。
-
变量的提升:
-
在全局作用域中声明的变量会被全部提升,但是不会被赋值
-
在函数作用域中声明的变量也会被提升,但是不会被赋值
-
函数的提升:
-
在全局作用域中声明的函数会被整个提升。
-
在函数作用域中声明的函数也会被整个提升。
-
需要注意的是,只有函数声明才能被整个提升,函数表达式不会被提升。