1. 程式人生 > >JS中全域性變數的隱藏危害

JS中全域性變數的隱藏危害

全域性變數的缺點

  1. 長期會佔用記憶體
  2. 容易引發命名衝突。在多人協作的開發中,全域性變數過多就會導致命名衝突的發生的可能性增大,會汙染名稱空間
  3. 會影響到區域性變數的獲取。如下:
var a=10;
function test(){
     console.log(a);
     var a=20;
}
test();

上述程式碼輸出為undefined,因為函式內部的console.log(a)是區域性變數a,這裡存在變數宣告的提升,但是變數的賦值沒有提前。即上述函式中的程式碼等價於:

var a;
console.log(a);  //輸出為undefined
a=10;