js中同名變數或者引數的優先順序

螞蟻小編發表於2017-03-16

在javascript程式碼中,可能會出現一些變數或者引數重名的現象,所以要確認一下到底是哪一個變數或者引數在起作用,下面就對此進行一下簡單的羅列性介紹,希望能夠給需要的朋友帶來幫助。

一.區域性的優先順序要高於全域性變數:

[JavaScript] 純文字檢視 複製程式碼
var a=1;
function func(){
  var a=2;
  console.log(a);
}
func();

以上的輸出結果是2,說明區域性變數覆蓋了全域性變數。

二.形式引數的優先順序高於函式名稱:

[JavaScript] 純文字檢視 複製程式碼
function func(func){
  console.log(func)
}
func(2)

以上程式碼的輸出只說明形參的優先順序要高於函式的名稱。

三.形式引數的優先順序高於arguments物件:

[JavaScript] 純文字檢視 複製程式碼
function func(arguments){
  console.log(arguments)
}
func(2)

以上函式的輸出值是2,這說明形參的優先順序要高於arguments物件。

四.形式引數的優先順序要高於宣告確為賦值的變數:

[JavaScript] 純文字檢視 複製程式碼
function func(webName){
  var webName;
  console.log(webName);
}
func("螞蟻部落");

以上程式碼的輸出值是"螞蟻部落",這說明形參的優先順序要高於宣告卻為賦值的變數。否則的話,此函式的輸出值為undefined。

五.形式引數的優先順序要低於賦值的變數:

[JavaScript] 純文字檢視 複製程式碼
function func(webName){
  webName="螞蟻部落一";
  console.log(webName);
}
func("螞蟻部落");

以上程式碼的輸出值是"螞蟻部落一",所以賦值的變數的優先順序要高於形式引數。

相關文章