Heim >Web-Frontend >js-Tutorial >Sechs Fehlertypen in JavaScript teilen
Die Fehlermeldungen in der Konsole in js sind hauptsächlich in zwei Kategorien unterteilt: Syntaxfehler. Wenn während des Voranalysevorgangs ein Fehler dieser Art auftritt, wird nicht die gesamte js-Datei ausgeführt. Eine andere Art von Fehler wird zusammenfassend als Ausnahme bezeichnet. Diese Art von Fehler führt dazu, dass der Code nach der Zeile, in der der Fehler auftritt, nicht ausgeführt werden kann, der Code vor dieser Zeile jedoch nicht betroffen ist.
1. SyntaxError: Syntaxfehler
// 1. Syntax Error: 语法错误 // 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. Nicht erfasster ReferenceError: Referenzfehler
Ein Fehler, der beim Verweisen auf eine nicht vorhandene Variable auftritt. Weisen Sie einem Objekt einen Wert zu, der nicht zugewiesen werden kann, beispielsweise das Ergebnis einer Funktion oder einer Funktionszuweisung.
// 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: Bereichsfehler
RangeError ist ein Fehler, der auftritt, wenn ein Wert nur außerhalb des gültigen Bereichs liegt. Es gibt mehrere Hauptsituationen: Die erste besteht darin, dass die Array-Länge eine negative Zahl ist. Die zweite besteht darin, dass die Methodenparameter des Number-Objekts außerhalb des zulässigen Bereichs liegen und der Funktionsstapel den Maximalwert überschreitet.
// 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-Typfehler
Ein Fehler, der auftritt, wenn eine Variable oder ein Parameter nicht vom erwarteten Typ ist. Wenn Sie beispielsweise neue primitive Typen wie Zeichenfolgen und boolesche Werte verwenden und Methoden aufrufen, die im Objekt nicht vorhanden sind, wird dieser Fehler ausgegeben, da der Parameter des neuen Befehls ein Konstruktor sein sollte.
// 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-Fehler
ist hauptsächlich auf falsche Parameter verwandter Funktionen zurückzuführen.
decodeURI("%") // Uncaught URIError: URI malformed at decodeURI
Fehler, die ausgelöst werden, wenn URI-bezogene Parameter falsch sind, betreffen hauptsächlich sechs Funktionen: encodeURI, decodeURI(), encodeURIComponent(), decodeURIComponent(), escape() und unescape().
6. EvalError eval()-Funktionsausführungsfehler
Wenn in JavaScript unter ES5 die eval()-Funktion nicht korrekt ausgeführt wird, wird ein evalError-Fehler ausgegeben.
Zum Beispiel die folgende Situation:
var myEval = eval; myEval("alert('call eval')");
Es ist zu beachten, dass dieser Fehler in JavaScript über ES5 nicht mehr ausgelöst wird, Sie diesen Typ jedoch weiterhin über das neue Schlüsselwort Error anpassen können Nachricht.
Die oben genannten 6 abgeleiteten Fehler sind zusammen mit dem ursprünglichen Fehlerobjekt allesamt Konstruktoren. Entwickler können damit Instanzen von Fehlerobjekten generieren.
new Error([message[,fileName[,lineNumber]]]),
Der erste Parameter stellt die Fehlermeldung dar, der zweite ist der Dateiname und der dritte ist die Zeilennummer.
Verwandte Empfehlungen:
Zusammenfassung häufiger JS-Fehlertypen
php Detaillierte Erläuterung der Fehlertypen und Abschirmungsmethoden
Häufige PHP-Fehlertypen und Abschirmungsmethoden
Das obige ist der detaillierte Inhalt vonSechs Fehlertypen in JavaScript teilen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!