JavaScript面试题:提升(hoisting)是什么意思?
话题: JavaScript 难度: ⭐⭐⭐⭐
提升(hoisting)是指JavaScript的解释器将所有的变量和函数声明都提升到该作用域的顶部,有两种提升类型:
- 变量提升
- 函数提升
在一个作用域中通过声明的变量和函数在整个作用域中都可以使用。
var a = 2;
foo(); // works because `foo()`
// declaration is "hoisted"
function foo() {
a = 3;
console.log( a ); // 3
var a; // declaration is "hoisted"
// to the top of `foo()`
}
console.log( a ); // 2
复制代码
虽然foo()
函数在后面定义,但是在前面也可以调用。
作者:Fundebug
来源:掘金
THE END