js中同名變量或者參數的優先級

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

一.局部的優先級要高於全局變量:

var a=1;
function func(){
  var a=2;
  console.log(a);
}
func();

以上的輸出結果是2,說明局部變量覆蓋了全局變量。

二.形式參數的優先級高於函數名稱:

function func(func){
  console.log(func)
}
func(2)

以上代碼的輸出只說明形參的優先級要高於函數的名稱。

三.形式參數的優先級高於arguments對象:

[JavaScript] 純文本查看 複製代碼

function func(arguments){
  console.log(arguments)
}
func(2)

以上函數的輸出值是2,這說明形參的優先級要高於arguments對象。

四.形式參數的優先級要高於聲明確爲賦值的變量:

function func(webName){
  var webName;
  console.log(webName);
}
func("測試");

以上代碼的輸出值是"測試",這說明形參的優先級要高於聲明卻爲賦值的變量。否則的話,此函數的輸出值爲undefined。

五.形式參數的優先級要低於賦值的變量:

function func(webName){
  webName="測試一";
  console.log(webName);
}
func("測試");

以上代碼的輸出值是"測試一",所以賦值的變量的優先級要高於形式參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章