在函数内部,最接近的环境就是函数的局部环境;在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
本文探讨了JavaScript中变量的作用域规则,包括全局环境、with语句中的作用域链及局部环境的概念。此外,还讨论了未使用var声明变量时所产生的全局变量问题。
737

被折叠的 条评论
为什么被折叠?



