TypeError: ... is undefined
と
ReferenceError: ... is not defined
間のdiffernceは何ですか?
TypeError: ... is undefined
と
ReferenceError: ... is not defined
間のdiffernceは何ですか?
ReferenceError
は、まったく存在しない変数を使用しようとすると発生します。
TypeError
は、変数が存在する場合に発生しますが、実行しようとしている操作は、その変数に含まれている値の型に適していません。詳細なメッセージに「定義されていません」と表示された場合は、値が特別なundefined
の値を持つ変数を持っていて、そのプロパティにアクセスしようとすると、これが発生します。
これに関連する議論については、http://javascriptweblog.wordpress.com/2010/08/16/understanding-undefined-and-preventing-referenceerrors/を参照してください。
シックスJavaScriptエラータイプ
のJavaScript 1.5仕様は、6つの主要エラータイプを定義し、次のように
EvalError:のeval()関数が誤った方法で使用される場合を上げます。
RangeError:数値変数が許容範囲を超えた場合に発生します。
ReferenceError:無効な参照が使用された場合に発生します。
SyntaxError: JavaScriptコードの解析中に構文エラーが発生した場合に発生します。
TypeError:変数の型が期待どおりでない場合に発生します。
強いテキストURIError:encodeURI()
またはdecodeURI()
関数が不正に使用された場合に発生します。
は、次のコードを考えてみましょう:
function foo(){
var d=1234;
console.log(d.substring(1,2));
}
foo();
この次ています出力:
例外:例外TypeError:d.substringは、私たちが間違った型(番号)を使用していたので、これは機能 ではありません(文字列が必要な部分文字列)。TypeErrorオブジェクトは、値が期待される型でない場合のエラーを表します。これは、出力を次のようしているだろう
function foo(){
var d=1234;
console.log(c);
}
foo();
:
例外:にReferenceError:cは が定義されていない変数「C」のための参照は、ローカルまたはグローバルのいずれかのスコープ内に存在しないと、我々はまだあるためですReferenceError例外は、存在しない変数にアクセスするとスローされます。
ECMAScript標準は、各エラータイプがどのシナリオで発生するかを定義します。これらのシナリオの完全なリストについては、[ここをクリック](http://ecma-international.org/ecma-262/5.1/#sec-15.11.6.3)を参照してください。 –
これらのエラーをスローするコード例を提供できますか? –