ホームページ >ウェブフロントエンド >フロントエンドQ&A >JavaScript プログラムのエラーにはどのような種類がありますか?

JavaScript プログラムのエラーにはどのような種類がありますか?

青灯夜游
青灯夜游オリジナル
2021-09-08 18:22:232546ブラウズ

JavaScript プログラムのエラー タイプは、1. Error、2. EvalError、3. RangeError、4. ReferenceError (参照エラー)、5. SyntaxError (構文エラー)、6. TypeError、7. URIError に分類されます。

JavaScript プログラムのエラーにはどのような種類がありますか?

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

#JavaScript のエラー タイプ

ECMA-262 では 7 つのエラー タイプが定義されています:

  • Error


  • EvalError


  • ##RangeError

  • ReferenceError

  • #SyntaxError

  • ##TypeError

  • ## URIError

  • #このうち、Error は基本型 (他の 6 つの型の親型) であり、他の型はそれを継承します。 Error タイプはまれで、通常はブラウザで使用されます。 ブラウザによってスローされます。この基本タイプは主に開発者がカスタム エラーをスローするために使用します。


  • 1. SyntaxError (構文エラー):

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

#が続きます

##5. URIError (URL エラー):

主な理由は、関連する関数のパラメーターが間違っていることです。

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。