三種方法
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)全局變量使函數的代碼可讀性降低。由於多個函數都可能使用全局變量,函數執行時全局變量的值可能隨時發生變化,對於程序的查錯和調試都非常不利。
因此,如果不是萬不得已,最好不要使用全局變量。