首页  >  文章  >  web前端  >  JavaScript 中不同作用域的同名变量是否会发生变量遮蔽?

JavaScript 中不同作用域的同名变量是否会发生变量遮蔽?

Linda Hamilton
Linda Hamilton原创
2024-10-24 10:35:02611浏览

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