JS中宣告全域變數主要分為明確宣告或隱式宣告以下分別介紹。
聲明方式一:
使用var(關鍵字) 變數名(標識符)的方式在function外部聲明,即為全域變量,否則在function聲明的是局部變數。方式為明確陳述詳細如下:
可以減少變數的個數,減少實際參數和形式參數的資料傳遞所帶來的時間消耗。
全域變數的缺點:
(1)全域變數保存在靜態存貯區,程式開始運行時為其分配內存,程式結束釋放該記憶體。與局部變數的動態分配、動態釋放相比,生存期比較長,因此過多的全域變數會佔用較多的記憶體單元。
(2)全域變數破壞了函數的封裝效能。函數像一個黑盒子,一般是透過函數參數和回傳值進行輸入輸出,函數內部實現相對獨立。但函數中如果使用了全局變量,那麼函數體內的語句就可以繞過函數參數和返回值進行訪問,這種情況破壞了函數的獨立性,使函數對全局變量產生依賴。同時,也降低了此函數的可移植性。
(3)全域變數使函數的程式碼可讀性降低。由於多個函數都可能使用全域變量,函數執行時全域變數的值可能隨時會變化,對於程式的查錯和偵錯都非常不利。