首頁 >web前端 >js教程 >JavaScript 中不同作用域的同名變數是否會發生變數遮蔽?

JavaScript 中不同作用域的同名變數是否會發生變數遮蔽?

Linda Hamilton
Linda Hamilton原創
2024-10-24 10:35:02698瀏覽

Can Variable Shadowing Occur in JavaScript with Different Scoped Variables of the Same Name?

你能使用一個基本的 JavaScript 範例來闡明變數遮蔽嗎?

變數遮蔽是 JavaScript 中的一個概念,其中在特定範圍內定義變數覆蓋在更廣泛的範圍內聲明的另一個同名變數。以下是一個基本範例來說明:

考慮以下程式碼片段:

<code class="javascript">var currencySymbol = "$";

function showMoney(amount) {
  var currencySymbol = "€";
  console.log(currencySymbol + amount);
}

showMoney("100");</code>

在此範例中,有兩個名為currencySymbol 的變數。全域變數currencySymbol 最初設定為“$”。在 showMoney 函數內部,宣告了一個同名的新變量,並將其設為「€」。

呼叫 showMoney 函數時,局部變數currencySymbol 會隱藏同名的全域變數。這表示函數內的程式碼將使用currencySymbol的本地值“€”,覆蓋全域值“$”。

因此,當執行console.log(currencySymbol amount)行時,它將在控制台上列印「€100」。這是因為 showMoney 函數中使用了局部變數currencySymbol,覆蓋了全域變數。

這是變數陰影的範例嗎?

是的,這是變數陰影的明顯例子。 showMoney 函數中的局部變數currencySymbol 會覆寫同名的全域變量,導致函數使用局部值「€」而不是全域值「$」。

以上是JavaScript 中不同作用域的同名變數是否會發生變數遮蔽?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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