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