1. 程式人生 > >JS中如何定義全域性變數

JS中如何定義全域性變數

三種方法

1.在js的function外定義一個變數

var name='測試';

function XX(){

       alert(name);

}

2.不使用var,直接給定義變數,隱式的聲明瞭全域性變數

name='測試';

function XX(){

alert(name);

}

這種方法,即使該變數是在一個function內,當該function被執行後它變成了全域性變數 ---- 但是function不執行它就不被其他function知道,所以最好定義在function外

3.使用window.變數名定義為全域性變數,但是注意:呼叫時候建議寫上window.變數名,當然也可以不寫;我們常用的document.getXXX的document物件就是window的

window.name='測試';

function XX(){

alert(window.name);

}

全域性變數的優點:

可以減少變數的個數,減少由於實際引數和形式引數的資料傳遞帶來的時間消耗。

全域性變數的缺點:
(1)全域性變數儲存在靜態存貯區,程式開始執行時為其分配記憶體,程式結束釋放該記憶體。與區域性變數的動態分配、動態釋放相比,生存期比較長,因此過多的全域性變數會佔用較多的記憶體單元。
(2)全域性變數破壞了函式的封裝效能。函式象一個黑匣子,一般是通過函式引數和返回值進行輸入輸出,函式內部實現相對獨立。但函式中如果使用了全域性變數,那麼函式體內的語句就可以繞過函式引數和返回值進行存取,這種情況破壞了函式的獨立性,使函式對全域性變數產生依賴。同時,也降低了該函式的可移植性。
(3)全域性變數使函式的程式碼可讀性降低。由於多個函式都可能使用全域性變數,函式執行時全域性變數的值可能隨時發生變化,對於程式的查錯和除錯都非常不利。
因此,如果不是萬不得已,最好不要使用全域性變數。