【发布时间】:2016-01-14 16:59:26
【问题描述】:
您好,我有一段代码。当我删除相同代码的非相关部分时,我对值 x1 的变化感到困惑。我搜索了一下,我才知道它与吊装有关。但是对于我来说,即使有提升的概念,x1 的值仍然不清楚。有人可以帮我解释一下吗?
var x = 10;
function main() {
document.write("<br>x1 is " + x);
x = 20;
if (x > 0) {
var x = 30;
document.write("<br>x2 is " + x);
}
var x = 40;
var f = function(x) {
document.write("<br>x3 is " + x);
}
f(50);
}
main();
这段代码的输出是:
x1 未定义
x2 为 30
x3 是 50
如果我将此代码更改为:
var x = 10;
function main() {
document.write("<br>x1 is " + x);
}
main();
输出是:
x1 是 10
【问题讨论】:
标签: javascript variables hoisting lexical-scope