ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript で同じ名前のスコープが異なる変数を使用すると変数シャドウイングが発生する可能性がありますか?

JavaScript で同じ名前のスコープが異なる変数を使用すると変数シャドウイングが発生する可能性がありますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-24 10:35:02616ブラウズ

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 という名前の変数が 2 つあります。グローバル変数currencySymbolは、初期状態では「$」に設定されています。 showMoney 関数内で、同じ名前の新しい変数が宣言され、「€」に設定されます。

showMoney 関数が呼び出されると、ローカル変数 CurrencySymbol が同じ名前のグローバル変数をシャドウします。これは、関数内のコードが、currencySymbol のローカル値「€」を使用し、グローバル値「$」をオーバーライドすることを意味します。

その結果、console.log(currencySymbol amount) 行が実行されると、コンソールに「€100」と出力されます。これは、ローカル変数 currentSymbol が showMoney 関数内で使用され、グローバル変数をオーバーライドしているためです。

これは変数シャドウイングの例ですか?

はい、これはそうです。変数シャドウイングの明確な例です。 showMoney 関数内のローカル変数 currentSymbol は、同じ名前のグローバル変数をオーバーライドし、その結果、関数はグローバル値 "$" の代わりにローカル値 "€" を使用します。

以上がJavaScript で同じ名前のスコープが異なる変数を使用すると変数シャドウイングが発生する可能性がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。