JavaScript 中的变量提升是指在代码执行之前,JavaScript 引擎会将声明的变量和函数提升到它们所在作用域的顶部,这样可以在代码中的任何位置使用这些变量和函数。
具体来说,变量提升可以分为以下两种情况:
-
变量声明提升:在函数作用域中,使用 var 声明的变量会被提升到函数作用域的顶部,但是不会被赋值,如果在赋值之前使用这个变量,它的值会是 undefined。
-
函数声明提升:无论在哪个位置声明函数,都会被提升到作用域的顶部,因此可以在函数声明之前调用这个函数。
需要注意的是,只有使用 var 声明的变量和函数声明才会被提升,使用 let 和 const 声明的变量不会被提升。此外,变量提升只会影响声明本身,而不会影响赋值操作。因此,如果在变量声明之前就使用了该变量,它会被视为未定义。