7.5Functions / No Arguments Shadowing

`arguments`という名前の引数

パラメータに`arguments`と名付けないでください。すべての関数スコープで提供される`arguments`オブジェクトを上書きしてしまいます。

すべての `function` キーワードで定義された関数は、引数のリストを保持する `arguments` という特別なオブジェクトをスコープ内に持っています。この名前をパラメータとして使うと、この組み込みのオブジェクトが上書き(シャドウイング)され、混乱やバグの原因となります。

❌ Bad
// bad
function foo(name, options, arguments) {
  // ...
}
✅ Good
// good
function foo(name, options, args) {
  // ...
}