我了解了Eloquent Javascript (Chapter 3)中的术语“变量阴影”,但是我试图理解该概念的精确的基本示例。
这是阴影的例子吗?

var currencySymbol = "$";

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

showMoney("100");

最佳答案

那就是所谓的变量范围

变量仅存在于其包含的函数/方法/类中,并且这些变量将覆盖属于更大范围的任何变量。

这就是为什么在您的示例中,将显示欧元符号,而不是美元。 (因为包含美元的currencySymbol比包含欧元符号的currencySymbol的范围更广(全局))。

至于您的特定问题:是的,这是可变阴影的一个很好的例子。

09-20 02:50