例如,我有点困惑如何在 JavaScript 中完成词法作用域
function outer(){
a = 5;
function inner(){
console.log(a);
var a = 10; //hoisting
}
inner();
}
outer();
如果我们a
在第 5 行重新定义,那么它将打印undefined
. 这是为什么?为什么解释器不向上遍历检查outer.VO
,即使a
可以在 中找到inner.VO
,但它在定义之前就被使用了?