首頁  >  文章  >  web前端  >  JavaScript全域變數宣告與優缺點介紹

JavaScript全域變數宣告與優缺點介紹

伊谢尔伦
伊谢尔伦原創
2017-07-18 09:17:402352瀏覽

JavaScript中宣告全域變數主要分為明確宣告或隱含宣告:

#宣告方式一:

##使用var(關鍵字)+變數名(標識符)的方式在function外部聲明,即為全域變量,否則在function聲明的是局部變數。此方式即為明確宣告詳細如下:

<script> 
  var test = 5;//全局变量 
  function a(){ 
    var a = 3;//局部变量 
    alert(a); 
  } 
  function b(){ 
    alert(test); 
  } 
  //a();//调用a方法,那么方法里面的内容才会执行 
  //b();//同上 
</script>

宣告方式二:

沒有使用var,直接給予識別碼test賦值,這樣會隱式的宣告了全域變數test。即使該語句是在一個function內,當該function被執行後test變成了全域變數。

<script> 
    test = 5;//全局变量 
    function a(){ 
      aa = 3;//也是全局变量 
      alert(test); 
    } 
    //a();  //输出5 
    //alert(aa);//这里也可以方法a()方法里面的变量,因为aa是全局变量 
  </script>

聲明方式三:

使用window全域物件來聲明,全域物件的屬性對應也是全域變量,詳細如下:

<script> 
  window.test = 50; 
  alert(test);//输出50 
</script>

這種方式常被用到一個匿名函數執行後將一些函數公開到全域。 如JQuery1.5中最末一句

程式碼如下:

window.jQuery = window.$ = jQuery;

全域變數的優點:

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

全域變數的缺點:

(1)全域變數保存在靜態存貯區,程式開始執行時為其分配內存,程式結束釋放該記憶體。與局部變數的動態分配、動態釋放相比,生存期比較長,因此過多的全域變數會佔用較多的記憶體單元。

(2)全域變數破壞了函數的封裝效能。函數像一個黑盒子,一般是透過函數參數和回傳值進行輸入輸出,函數內部實現相對獨立。但函數中如果使用了全局變量,那麼函數體內的語句就可以繞過函數參數和返回值進行訪問,這種情況破壞了函數的獨立性,使函數對全局變量產生依賴。同時,也降低了此函數的可移植性。

(3)全域變數使函數的程式碼可讀性降低。由於多個函數都可能使用全域變量,函數執行時全域變數的值可能隨時會變化,對於程式的查錯和除錯都非常不利。
因此,如果不是萬不得已,最好不要使用全域變數。

JS判斷變數是否為空是否null的方法

function isNull(data){
return (data == "" || data == undefined || data == null) ? "暂无" : data;
}

以上是JavaScript全域變數宣告與優缺點介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn