ReferenceError: "x" is not defined
JavaScript の例外 "variable is not defined" は、どこかで参照している変数が存在しない場合に発生します。
エラーメッセージ
js
ReferenceError: "x" is not defined
エラーの種類
エラーの原因
例
宣言されていない変数
js
foo.substring(1); // ReferenceError: foo is not defined
"foo" と言う変数はどこにも宣言されていません。これは文字列である必要があり、それならば String.prototype.substring()
メソッドが動作します。
js
var foo = "bar";
foo.substring(1); // "ar"
スコープの間違い
変数は現在の実行コンテキストで利用可能である必要があります。関数の中で定義された変数は、その関数のスコープ内でしか定義されていないので、関数の外のどこからもアクセスできません。
js
function numbers() {
var num1 = 2,
num2 = 3;
return num1 + num2;
}
console.log(num1); // ReferenceError num1 is not defined.
しかし、関数はそれが定義されたスコープ内で定義されたすべての変数と関数にアクセスすることができます。言い換えれば、グローバルスコープで定義された関数は、グローバルスコープ内で定義されたすべての変数にアクセスすることができます。/p>
js
var num1 = 2,
num2 = 3;
function numbers() {
return num1 + num2;
}
console.log(numbers()); // 5