提升的函式宣告會覆蓋同名變數宣告

螞蟻小編發表於2017-04-14

這裡只介紹一個現象,那就如果在同一作用於有同名函式或者變數宣告,那麼函式會覆蓋變數。

[JavaScript] 純文字檢視 複製程式碼
function done() {
  var webName;
  function webName() {
    //code
  }
  console.log(typeof webName);
}
done();

上面的程式碼會輸出"function",說明函式宣告已經覆蓋了同名變數宣告。

再來看一段程式碼例項:

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

如果變數是賦值的,那麼就無法覆蓋。

相關文章