在函数内部,最接近的环境就是函数的局部环境;在with语句中,最接近的环境就是函数环境,如果初始化变量时没有使用var声明,则变量会自动被添加到全局环境.
1.全局环境的变量
for(var i=0;i<10;i++){ doSomething(i); } alert(i);//10
2.with延长作用域连
function buildUrl(){ var qs="aaaa"; with(location){ var url=href+qs; } return url; }
3.局部环境
function add(num1,num2){ var sum = num1+num2; return sum; } var result = add(10,20);//30 alert(sum);//由于sum不是有效的变量,因此导致报错
4.没有使用var 变成全局
function add(num1,num2){ sum = num1+num2; return sum; } var result = add(10,20);//30 alert(sum);//30