以为我终于理解在JavaScript中提升*了,但这种让我感到困惑。我已经注意到我认为应该发生的事情,但有人可以解释一下吗?
function bar() {
return foo;
foo = 10;
function foo() {}
var foo = '11';
}
2016年6月11日更新
以下是我对上述代码的“提升”。 的理解/抽象,这不是新代码。
function bar() {
function foo() {} // value function
var foo; // value undefined;
return foo;
foo = 10; // I believe this will create a global variable if the function is executed
foo = '11'; //local foo is assigned the string value 11
}
alert(typeof bar()); // returns function
*我理解“吊装”是我们发明的用于解释通过解释器编译的不同阶段的心理构造。