From f682c6ae816eeb63dbb51bb7636a9a911d9f7496 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Mon, 7 Jun 2021 23:42:57 +0900 Subject: Web/JavaScript/Reference/Errors/Undeclared_var を更新 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 2021/02/20 時点の英語版に同期 --- .../reference/errors/undeclared_var/index.html | 41 ++++++++++++---------- 1 file changed, 22 insertions(+), 19 deletions(-) (limited to 'files/ja/web/javascript/reference') diff --git a/files/ja/web/javascript/reference/errors/undeclared_var/index.html b/files/ja/web/javascript/reference/errors/undeclared_var/index.html index 1f5f446286..e89391c3bf 100644 --- a/files/ja/web/javascript/reference/errors/undeclared_var/index.html +++ b/files/ja/web/javascript/reference/errors/undeclared_var/index.html @@ -2,65 +2,68 @@ title: 'ReferenceError: assignment to undeclared variable "x"' slug: Web/JavaScript/Reference/Errors/Undeclared_var tags: - - Errors - - JavaScript - - ReferenceError - - Strict Mode +- Error +- Errors +- JavaScript +- ReferenceError +- Strict Mode translation_of: Web/JavaScript/Reference/Errors/Undeclared_var ---
{{jsSidebar("Errors")}}
-

メッセージ

+

JavaScript の strict モード独自の例外 "Assignment to undeclated variable" は、値が宣言されていない変数に代入されたときに発生します。

-
ReferenceError: assignment to undeclared variable "x" (Firefox)
+

エラーメッセージ

+ +
ReferenceError: assignment to undeclared variable "x" (Firefox)
 ReferenceError: "x" is not defined (Chrome)
 ReferenceError: Variable undefined in strict mode (Edge)
 
-

エラータイプ

+

エラーの種類

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

-

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

+

エラーの原因

-

宣言していない変数に値を割り当てています。つまり、var キーワードを使用せずに割り当てをしています。 宣言した変数と宣言していない変数の間には、予想外の結果を招くいくつかの違いがあります。それが、strict モードで JavaScript がエラーを発生させる理由です。

+

宣言していない変数に値を代入しています。つまり、 var キーワードを使用せずに代入をしています。宣言した変数と宣言していない変数の間には、予想外の結果を招くいくつかの違いがあります。それが、 strict モードで JavaScript がエラーを発生させる理由です。

-

宣言した変数と宣言していない変数について、3 つの注意点があります:

+

宣言した変数と宣言していない変数について、3 つの注意点があります。

詳細や具体例は、var 参照ページを見てください。

strict モードのコード でのみ、宣言していない変数割り当てエラーが発生します。非 strict コードでは、それらは暗黙裡に無視されます。

-

+

-

無効なケース

+

無効なケース

このケースでは、変数 "bar" は宣言していない変数です。

function foo() {
-  "use strict";
+  'use strict';
   bar = true;
 }
 foo(); // ReferenceError: assignment to undeclared variable bar
 
-

有効なケース

+

有効なケース

-

"bar" を宣言した変数にするために、"bar" の前に、var キーワードを追加します。

+

"bar" を宣言済みの変数にするために、その前に var キーワードを追加します。

function foo() {
-  "use strict";
+  'use strict';
   var bar = true;
 }
 foo();
-

関連項目

+

関連情報