老师,有一段代码 和EC相关,但是看了有些不明白
var a = 1;
function foo() {
if (!a) {
var a = 2;
}
alert(a);
};
foo();我自己的理解以为是输出1,但是实验发现是2.
是不是在变量初始化阶段,foo这个函数体内部也会进行赋值操作。我的理解是是把初始化阶段的时候是把foo存储到VO中,然后foo中的代码不会执行。 我以为上面代码中的foo函数体中 var a = 2 这个操作也是 在执行阶段才开始的?