From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../reference/errors/var_hides_argument/index.html | 56 ++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 files/ja/web/javascript/reference/errors/var_hides_argument/index.html (limited to 'files/ja/web/javascript/reference/errors/var_hides_argument') diff --git a/files/ja/web/javascript/reference/errors/var_hides_argument/index.html b/files/ja/web/javascript/reference/errors/var_hides_argument/index.html new file mode 100644 index 0000000000..8653e6da87 --- /dev/null +++ b/files/ja/web/javascript/reference/errors/var_hides_argument/index.html @@ -0,0 +1,56 @@ +--- +title: 'TypeError: variable "x" redeclares argument' +slug: Web/JavaScript/Reference/Errors/Var_hides_argument +tags: + - Errors + - JavaScript + - Strict Mode + - TypeError +translation_of: Web/JavaScript/Reference/Errors/Var_hides_argument +--- +
{{jsSidebar("Errors")}}
+ +

メッセージ

+ +
TypeError: variable "x" redeclares argument (Firefox)
+
+ +

エラータイプ

+ +

strict モード でのみ、{{jsxref("TypeError")}} の警告がでます。

+ +

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

+ +

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

+ +

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

+ +

+ +

無効なケース

+ +

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

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

有効なケース

+ +

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

+ +
"use strict";
+
+function f(arg) {
+  arg = "foo";
+}
+
+ +

関連項目

+ + -- cgit v1.2.3-54-g00ecf