对于有块级作用域的语言来说,for语句初始化变量的表达式所定义的变量,只会存在于循环的环境中。

而对于javascript来说,由for循环创造的变量,即使在for循环结束后,也依旧会存在于外部执行环境中。

for(var i=0;i<10;i++){

doSomething(i);

}

alert(i);   //10

以下两种情况的作用域不同:

function add(num1,num2){

var sum=num1+num2;

return sum;

}

var result=add(10,20);

alert(sum);  //出现错误因为sum不是有效变量

 

function add(num1,num2){

sum=num1+num2;

return sum;

}

var result=add(10,20);

alert(sum);  //30

posted on 2012-01-19 15:57  Ballad1939  阅读(138)  评论(0编辑  收藏  举报