MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

TypeError: variable "x" redeclares argument

メッセージ

TypeError: variable "x" redeclares argument (Firefox)

エラータイプ

strict モード でのみ、TypeError の警告がでます。

何がうまくいかなかったのか?

関数のパラメータとして使用されたものと同じ変数名が、関数のボディ内で var 割り当てを使用して再宣言されています。これは命名が競合する可能性があるため、JavaScript が警告を発します。

このエラーは、strict モードのコード でのみ発生します。非 strict モードでは、再宣言は暗黙裡に無視されます。

無効なケース

このケースでは、変数 "arg" 引数を再宣言しています。

"use strict";

function f(arg) { 
  var arg = "foo"; 
}

有効なケース

var ステートメントを省略するだけで、この警告を修正できます。なぜなら、変数はすでに存在しているからです。そのほかの方法として、関数のパラメータか変数名をリネームすることもできます。

"use strict";

function f(arg) {
  arg = "foo";
}

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama
 最終更新者: YuichiNukiyama,