ÜberblickWir sehen überall Fehler, von der Browserkonsole bis zum Terminal, auf dem wir Node.js ausführen. Der Schwerpunkt dieses Artikels liegt darauf, einen Überblick über die Fehlertypen zu geben, die bei der JS-Entwicklung auftreten können. Tipp: Gute Fehler können den Unterschied zwischen einer schnellen und schmerzlosen und einer langsamen und schmerzhaften Entwicklungserfahrung ausmachen. Achten Sie beim Schreiben von wiederverwendbarem Code darauf, dass Sie klaren und verständlichen Code zur Fehlerbehandlung schreiben. 1. BereichsfehlerDieser Fehler wird ausgelöst, wenn eine Zahl außerhalb des zulässigen Wertebereichs liegt. Zum Beispiel const l = konsole.log const arr = [90,88] arr.Länge = 90**99 Wir haben ein Array, arr mit zwei Elementen. Versuchen Sie als Nächstes, das Array so zu erweitern, dass es 90**99 == 2,9512665430652753e+193 Elemente enthält. Diese Zahl liegt außerhalb des Bereichs, in dem die Array-Größe wachsen kann. Das Ausführen davon löst einen RangeError aus:
Weil wir die Größe des Arr-Arrays über den von JS angegebenen Bereich hinaus erhöhen möchten. 2. ReferenzfehlerDieser Fehler wird ausgelöst, wenn ein Verweis auf eine Variable oder ein Element beschädigt ist. Das heißt, die Variable oder das Element existiert nicht. Zum Beispiel const l = konsole.logconst cat = "cat" Katze Hund Es gibt eine Variable cat, die mit „cat“ initialisiert wird. Als nächstes werden die Variablen „Katze“ und „Hund“ referenziert. Die Variable „Katze“ existiert, die Variable „Hund“ jedoch nicht. „cat“ gibt „cat“ zurück, während „dog“ einen ReferenceError auslöst, da der Name „dog“ nicht im Umgebungsdatensatz gefunden werden kann.
Immer wenn wir eine Variable erstellen oder definieren, wird der Variablenname in den Umgebungsdatensatz geschrieben. Umgebungsdatensätze sind wie Schlüssel-Wert-Speicher.
Wenn wir auf eine Variable verweisen, wird die Variable wie im Programm definiert gespeichert. Wenn im Datensatz ein Umgebungswert gefunden und der Wert extrahiert und zurückgegeben wird, wird der Umgebungsdatensatz mit dem Namen der Variablen als Schlüssel durchsucht. Aufruf einer Funktion, die noch nicht definiert wurde. Wenn wir jetzt eine Variable erstellen oder definieren, ohne ihr einen Wert zuzuweisen. Der Schlüssel der Variable wird als Variablenname in den Umgebungsdatensatz geschrieben, ihr Wert bleibt jedoch undefiniert.
Wenn einer Variablen später ein Wert zugewiesen wird, wird im Umgebungsdatensatz danach gesucht und wenn festgestellt wird, dass sie nicht definiert ist, wird die Zuweisung überschrieben.
Wenn also ein Variablenname nicht im Umgebungsdatensatz gefunden wird, löst die JS-Engine einen RefernceError aus.
Hinweis: Eine nicht definierte Variable löst keinen Referenzfehler aus, da der Wert im Umgebungsdatensatz noch nicht festgelegt wurde. 3. SyntaxfehlerDies ist der häufigste Fehler. Dieser Fehler tritt auf, wenn wir Code eingeben, den die JS-Engine nicht verstehen kann. Die JS-Engine hat diesen Fehler beim Parsen erkannt. In der JS-Engine durchläuft unser Code verschiedene Phasen, bevor wir das Ergebnis auf dem Terminal sehen können.
Durch die Tokenisierung wird der Quellcode in einzelne Einheiten zerlegt. In dieser Phase werden Zahlen, Schlüsselwörter, Text und Operatoren kategorisiert und separat beschriftet. Anschließend wird der resultierende Token-Stream an die Analysephase übergeben, wo er vom Parser verarbeitet wird. Hier wird der AST aus dem Token-Stream generiert. AST ist eine abstrakte Darstellung der Codestruktur. Wenn in den Phasen der Tokenisierung und Analyse die Syntax unseres Codes nicht den Grammatikregeln von JS entspricht, führt dies zu einem Fehler in der Phase und zu einem SyntaxError. Zum Beispiel: const l = console.loglet cat h = "Katze" Wofür steht das „h“ im Code? Dieses „h“ unterbricht den Code.
Sehen Sie, Node.js hat das Problem herausgefunden. Dort heißt es, dass das „h“ unerwartet war und die Deklaration der Variable „cat“ beschädigt hat. Daher können wir sagen, dass beim Parsen oder Kompilieren Syntaxfehler auftreten. 4. TypfehlerTypeError wird verwendet, um anzuzeigen, dass ein Vorgang fehlgeschlagen ist, wenn in anderen NativeError-Objekten kein entsprechender Hinweis auf die Fehlerursache vorliegt. Ein TypeError tritt auf, wenn eine Operation mit dem falschen Datentyp ausgeführt wird, zum Beispiel: Versuchen wir, die Zahl wie folgt in Großbuchstaben umzuwandeln: Konstante Zahl = 123 num.toUpperCase() Dies führt zu einem TypeError
Weil die Funktion toUpperCase den Datentyp String erwartet. Die Funktion toUpperCase ist absichtlich generisch; ihr this-Wert muss kein String-Objekt sein. Daher kann es zur Verwendung als Methode auf andere Arten von Objekten übertragen werden. Nur Zeichenfolgen werden in Groß- oder Kleinbuchstaben umgewandelt. Wenn wir die Funktion toUpperCase für Objekte, Boolean, Symbol, Null oder undefinierte Datentypen aufrufen, erhalten wir einen TypeError, da sie mit dem falschen Datentyp arbeitet. 5. URIErrorDies weist darauf hin, dass eine globale URI-Behandlungsfunktion verwendet wird, die mit ihrer Definition nicht kompatibel ist. URI (Uniform Resource Indicator) in JS hat die folgenden Funktionen: decodeURI, decodeURIComponent usw. Wenn wir eines davon mit falschen Argumenten aufrufen, erhalten wir einen URIError. decodeURI("%") ^URIError: URI fehlerhaft encodeURI wird verwendet, um die nicht codierte Version einer URI zu erhalten. „%“ ist keine richtige URI, daher wird ein URIError ausgelöst. URIError wird ausgelöst, wenn beim Kodieren oder Dekodieren einer URI ein Problem auftritt. 6. EvalErrorDies dient der Fehlererkennung bei der Verwendung der globalen Funktion eval(). Laut EcmaSpec Ausgabe 2018: Diese Ausnahme wird derzeit von dieser Spezifikation nicht verwendet. Es wird aus Kompatibilitätsgründen mit früheren Versionen dieser Spezifikation beibehalten. 7. Interner FehlerDieser Fehler tritt innerhalb der JS-Engine auf, insbesondere wenn zu viele Daten verarbeitet werden müssen und der Stapel seine kritische Grenze überschreitet. Dieses Problem tritt auf, wenn die JS-Engine durch zu viel Rekursion, Groß- und Kleinschreibung usw. überlastet ist. Schalter(Nummer) { Fall 1: ... brechen Fall 2: ... brechen Fall 3: ... brechen Fall 4: ... brechen Fall 5: ... brechen Fall 6: ... brechen Fall 7: ... brechen ... bis zu 1000 Fälle } Hier ist ein einfaches Beispiel für übermäßige Rekursion: Funktion foo() { foo() } foo() ZusammenfassenWie gesagt, jeder macht Fehler. Soweit wir codieren, ist dies ein stabiles Ereignis. Um dieses Problem zu beheben, müssen wir die Arten nativer Fehler kennen, die auftreten können. Dieser Artikel listet sie auf und bietet einige Beispiele, wie sie ausgelöst werden. Wenn also im Terminal oder im Browser ein Fehler auftritt, können Sie leicht herausfinden, wo und wie der Fehler aufgetreten ist und besseren, weniger fehleranfälligen Code schreiben. Oben finden Sie Einzelheiten zu 7 nativen JS-Fehlertypen, die Sie kennen sollten. Weitere Informationen zu nativen JS-Fehlertypen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung, wie NGINX PV, UV und unabhängige IP der Website zählt
>>: Anweisungen zur Verwendung von MySQL-Indizes (einspaltiger Index und mehrspaltiger Index)
Inhaltsverzeichnis Routenplaner Hintergrund Erste...
In diesem Artikelbeispiel wird der spezifische JS...
Inhaltsverzeichnis 1 Systemeinführung 2 Systemver...
Inhaltsverzeichnis Lösung, Zusammenfassen: Vue-Pr...
Schauen wir uns zunächst einige einfache Daten an:...
Beschreibung: Ändern Sie den Wagenrücklauf im Text...
Vorwort Nachdem das Projekt auf .net Core migrier...
Vorwort: In diesem Artikel werden nur die Schritt...
Vorwort Das integrierte Modul von Nginx unterstüt...
1. Die Rolle des Index Im Allgemeinen entspricht ...
<br />Dies stammt aus dem Inhalt von „Web Fr...
Inhaltsverzeichnis 01 Einführung in Atomic DDL 02...
Inhaltsverzeichnis 1. Klasse 1.1 Konstruktor() 1....
Durch die Verwendung von Abkürzungen können Sie di...
Inhaltsverzeichnis # Nachbereitung der Daten # SQ...