例一 var x=10;全局變數(開闢空間)function outer(){x=20;//此處未聲明變數(未開闢空間),只給全局變數聲明瞭,此處賦值會把全局變數開闢的存儲空間的值替換掉(全局變數中的x替換成20)。function inner(){x=30;//此處未聲明變數(未開闢空間),只給全 ...
例一
var x=10;全局變數(開闢空間)
function outer(){
x=20;//此處未聲明變數(未開闢空間),只給全局變數聲明瞭,此處賦值會把全局變數開闢的存儲空間的值替換掉(全局變數中的x替換成20)。
function inner(){
x=30;//此處未聲明變數(未開闢空間),只給全局變數聲明瞭,此處賦值會把全局變數開闢的存儲空間的值替換掉(全局變數中的x替換成30)。
alert(x);//3、輸出x的值為30;
}
inner();//2.執行inner();
alert(x);//4、輸出x的值為30;
}
outer();//1.執行outer();
alert(x);//5、輸出x的值為30;
//結果:30 30 30
例二
var x=10;//全局變數(開闢空間1)
function outer(){
var x=20;//局部變數(開闢空間2)
function innter(){
x=30;//局部變數(未開闢空間),開闢空間2的x值被賦值為30
alert(x);//3.彈出innter()的局部變數x=30;
}
innter();//2.執行函數innter()
alert(x);//4.彈出outer()的局部變數x=30;
}
outer();//1、執行函數outer();
alert(x);//5.彈出全局變數x=10;
//結果:30 30 10