ホームページ >ウェブフロントエンド >フロントエンドQ&A >JavaScript プログラムのエラーにはどのような種類がありますか?
JavaScript プログラムのエラー タイプは、1. Error、2. EvalError、3. RangeError、4. ReferenceError (参照エラー)、5. SyntaxError (構文エラー)、6. TypeError、7. URIError に分類されます。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
#JavaScript のエラー タイプ
ECMA-262 では 7 つのエラー タイプが定義されています:
##TypeError
## URIError
1.1 変数名が仕様に準拠していませんvar 1 // Uncaught SyntaxError: Unexpected
number
var 1a // Uncaught SyntaxError: Invalid or unexpected token
1.2 キーワードへの値の割り当て
function = 5 // Uncaught SyntaxError: Unexpected token =
2. Uncaught ReferenceError:
は次のことを指します存在しない参照 変数の使用時にエラーが発生しました。関数の結果など、代入できないオブジェクトに値を代入する。 機能の割り当て。 2.1 存在しない変数への参照
a(); // Uncaught ReferenceError: a is not defined console.log(b); // Uncaught ReferenceError: b is not defined
2.2 代入できないオブジェクトに値を代入する
console.log("abc") = 1 // Uncaught ReferenceError: Invalid left-hand side in assignment
3. RangeError (範囲エラー):
RangeError は、有効範囲を超えた場合に発生するエラーです。主な状況はいくつかありますが、1 つ目は配列の長さが負の数である場合です。 2 つ目は、Number オブジェクトのメソッド パラメーターが範囲外で、関数スタックが最大サイズを超えていることです。 3.1 配列の長さが負の数です
[].length = -5; // Uncaught RangeError: Invalid array length
3.2 Number オブジェクトのメソッド パラメータが範囲外です
var num = new Number(12.34); console.log(num.toFixed(-1)); // Uncaught RangeError: toFixed() digits argument must be between 0 and 20 at Number.toFixed // 说明: toFixed方法的作用是将数字四舍五入为指定小数位数的数字,参数是小数点后的位数,范围为0 -20.
4. TypeError:
変数またはパラメーターが予期された型ではない場合に発生するエラー。たとえば、新しい文字列、ブール値、その他のプリミティブ型を使用し、呼び出し元のオブジェクトが存在しない場合などです。 新しいコマンドのパラメータはコンストラクタである必要があるため、このメソッドはこのエラーをスローします。 #4.1 存在しないメソッドの呼び出し
123(); // Uncaught TypeError: 123 is not a function var o = {}; o.run(); // Uncaught TypeError: o.run is not a function
4.2 new キーワードの後には基本型
var p = new 456(); // Uncaught TypeError: 456 is not a constructor
#が続きます
decodeURI("%"); // Uncaught URIError:
URI malformed at decodeURI
::: ヒント リマインダー: URI 関連のパラメータが正しくない場合にスローされるエラー。主に encodeURI、decodeURI()、
6 つの関数: encodeURIComponent()、decodeURIComponent()、escape()、unescape()。 :::
6. EvalError eval() (関数実行エラー):
ES5 以下の JavaScript では、eval() のとき関数が正しく実行されない場合、evalError がスローされます。例えば 次の状況:
var myEval = eval;
myEval("alert('call eval')");
需要注意的是:ES5以上的JavaScript中已经不再抛出该错误,但依然可以通过new关键字来自定义该类型
的错误提示。
::: warning どこかでエラーが発生し、コードを変更することで解決できることがわかっている場合は、try-catch を有効に活用してください。
Try-Catch の使用には適していません。またはブラウザごとの互換性エラーによるエラーには不向きです。
ブラウザは、問題を解決するために、この属性とメソッドがこのブラウザに存在するかどうかを判断することがあります。 :::
new Error("出错了!"); new RangeError("出错了,变量超出有效范围!"); new TypeError("出错了,变量类型无效!");
上記のコードは、エラー オブジェクトの新しいインスタンスを表しています。本質は、手動でエラーをスローすることです。ご覧のとおり、エラー オブジェクトのコンストラクターは エラーメッセージ(メッセージ)を表すパラメータ。
これらの基本的なエラー タイプを理解しておくと、エラーが発生したときに問題をすぐに特定して解決できます。
[推奨学習:
JavaScript 上級チュートリアル]
以上がJavaScript プログラムのエラーにはどのような種類がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。