【发布时间】:2014-11-18 13:27:49
【问题描述】:
我有这个代码。我已经写了我期望作为正确输出的 'i' (以 cmets 为单位)的值。但是输出/警报是不同的。
小提琴:http://jsfiddle.net/e2jbno4a/
代码:
var i = 10;
function outer() {
alert(i); // 10
var i = 5;
alert(i); // 5
function inner() {
var i = 20;
}
inner();
alert(i); // 5
if (1) {
var i = 30;
}
alert(i); // 5
setTimout(function () {
alert(i); // 5
}, 100);
}
outer();
有人可以告诉我输出的原因吗?还是只是解释具体概念的指针?
【问题讨论】:
-
概念是“词法作用域”和“提升”
标签: javascript web concept