而在javascript中,變量的作用域是按函數來劃分的——變量在某個函數范圍內有效。比如:
復制代碼 代碼如下:
var f = false;
if(true) { var f = true; } //此時f位於if內,也就是塊內,等價於還是全局范圍內
alert(f) //所以,結果為true
再如下例:
復制代碼 代碼如下:
var f = false;
function test() {
var f = true; //這是函數內定義的變量,只在函數內部有效,函數執行完畢後,該變量將被釋放
}
test();
alert(f) //結果為false,並沒有因為test()的執行而改變
再有,在javascript中聲明的全局變量都可以看作是window對象的一個屬性,比如:
復制代碼 代碼如下:
var test = "this is a test";
alert(window.test == test) //結果為true
這正好驗證了上邊所說的全局變量也是window對象的屬性
最後,我們來看
[code]
function test() {
f = false;
}
test();
alert(f) //結果為false
[html]
那麼,如果在聲明變量時,如果不添加var(隱式聲明),也被看作了全局變量了,盡管它是定義在函數之內的。