var a=5;
function fun(){
a=0;
alert(a); //0
alert(this.a); //5
var a;
alert (a); //0
}
fun();
以上代碼 将會輸出 0 ,5,0.
首先在js中我們的變量聲明指派分為兩個部分 。
1.變量的聲明 var a;2.變量的指派 a=2;
但是一般我們會把變量的聲明和指派寫在 一起 也就是 var a=2;
而在js 中變量的聲明會被提前到 目前作用域的開始,也就是說以上代碼和下面代碼是等價的
var a=5;
function fun(){
var a; //變量的聲明提前
a=0; //指派語句保持不變
alert(a); //0
alert(this.a); //5
alert (a); //0
}
var a=5;
function fun(){
a=0;
alert(a); //0
alert(this.a); //0
alert (a); //0
}