Cookies Diese Website speichert nur, was sie zum Funktionieren braucht. Derzeit gibt es hier weder Analyse noch Werbung, und nichts davon verfolgt Sie auf andere Websites. Datenschutzerklärung lesen

Auswahl anpassen
+92 312 8299940Kostenloses Angebot
Kostenloses Werkzeug, nichts zu installieren

JavaScript-Validator
Nennt die Zeile, nicht nur den Fehler

Dieser JavaScript-Validator liest ein Skript so, wie eine Engine es tut, und meldet das Erste, was ihn anhält. Jeder Hinweis trägt dabei eine Zeile, eine Spalte und das schuldige Token, deshalb gehen Sie direkt dorthin. Nichts verlässt den Browser und nichts wird ausgeführt.

  • KostenlosPreis
  • ES2024Liest
  • NieFührt Code aus
  • KeineUploads

JavaScript Validator

Read a script and name the first syntax error, with the line and the column

Nothing read yet.

Ready. Paste a script, or press the sample button.

Ihr Browser erledigt hier die ganze Arbeit, in diesem Tab. Wir laden nichts hoch, speichern nichts und protokollieren nichts.
Die kurze Fassung

Was ein JavaScript-Validator prüft

Eine Engine liest ein ganzes Skript, bevor sie eine einzige Zeile davon ausführt. Daher hält eine kaputte Klammer irgendwo die ganze Datei an, und der Tab bleibt leer.

Genau für diesen Fehler gibt es diesen JavaScript-Validator. Er geht das Skript als Text durch und nennt die erste Stelle, an der die Grammatik bricht, mit Zeile und Spalte.

Außerdem prüft er die Form des Gelesenen. Eine Klammer ohne Partner, eine Zeichenkette, die nie schließt, ein Schlüsselwort als Name, ein verlorenes Komma in der Argumentliste eines Aufrufs.

Er baut keinen Ausführungskontext, deshalb erzeugt er keine globale Variable und ruft keine Funktion auf. Weil der Leser das Skript nur liest, können Sie einen Validator auf Code richten, den Sie auf einer eigenen Seite nie laufen ließen.

Nichts verlässt diesen Tab. Daher wird ein Kundenskript unter Verschwiegenheitsvereinbarung genau wie ein öffentliches gelesen.

Wie ein JavaScript-Validator ein Skript liest

Der erste Durchgang macht aus dem Text Token. Eine Zahl, eine Zeichenkette, ein Template, ein regulärer Ausdruck, ein Name, ein Operator und ein Schlüsselwort sind verschiedene Dinge, und der Leser entscheidet Zeichen für Zeichen, was er vor sich hat.

Diagramm einer Zeile JavaScript, zerlegt in eine Reihe farbiger Token-Chips, ein Schlüsselwort, ein Name, ein Gleichheitszeichen, eine Zeichenkette, ein Semikolon, dann ein regulärer Ausdruck als Schrägstrich-Literal mit einem Hinweis daneben, der erklärt, dass ein Schrägstrich nach einem Namen eine Division ist, während ein Schrägstrich nach einer öffnenden Klammer einen regulären Ausdruck beginnt, unter einer Überschrift, die zuerst zerlegen, dann analysieren lautet
Eine Zeile, zwei Durchgänge und ein Schrägstrich, der zwei verschiedene Dinge bedeutet.

Dann durchläuft der zweite Durchgang diese Token der Reihe nach und prüft die Form dessen, was er liest: welche Klammern noch offen sind, welche Namen ein Gültigkeitsbereich bereits hält und ob ein Wort wie return eine Funktion um sich hat. Das Regelwerk ist hier ECMA-262, der Standard hinter jeder Engine.

Die Reihenfolge zählt, und sie erklärt überraschend viele Fehlermeldungen. Weil das Zerlegen zuerst läuft, hat ein Skript, das nach einem Klammerproblem aussieht, in Wahrheit oft ein Anführungszeichen, das nie schloss.

Ein Fall verlangt einen zweiten Blick statt einer Regel: Ein Schrägstrich ist ein Divisionsoperator oder der Anfang eines regulären Ausdrucks, und die Antwort hängt vom Token davor ab. Deshalb fragt der Zerleger das letzte Token, was es war.

Templates bringen eine weitere Falte. Weil ein Template einen Ausdruck in Klammern halten kann, führt der Zerleger einen Stapel über das Template, in dem er steckt. Dabei ist eine Klammer in einer Zeichenkette Text, und eine Klammer in einem Template ist Code.

Warum ein gültiges Skript trotzdem falsch sein kann

Grammatik und Bedeutung sind getrennte Schichten. Ein Validator beantwortet die Frage der Grammatik, und jeder brauchbare hört dort auf.

Deshalb kommt ein Skript mit einer Variablen durch, die im strikten Modus nie deklariert wird, mit einer Eigenschaft, die aus einem Wert gelesen wird, das gerade undefined hält, oder mit einem await in einer Funktion, die nicht asynchron ist. Jedes davon ist ein Laufzeitproblem.

Die Grenze dazwischen lohnt sich zu merken. Ein Syntaxfehler heißt, dass kein Teil der Datei lief, und ein Laufzeitfehler heißt, dass die Datei bis zu dieser Zeile lief. Daher verlangen die beiden eine völlig andere Fehlersuche.

Darum nennt diese Seite auch den ersten Fehler statt hundert. Weil die Analyse dort stehen bleibt, ist alles danach geraten, und eine Liste von Vermutungen wiegt weniger als eine Tatsache.

Die sechs Prüfungen und was jede bedeutet

Die erste Prüfung ist die Klammerbalance. Der Leser meldet eine geschweifte, eine eckige oder eine runde Klammer ohne Partner an der Stelle, an der er aufgab. Nämlich dieser eine Fehler kann die ganze Datei kosten.

Bildschirmfoto des JavaScript-Validators, nachdem er eine neunzeilige Funktion gelesen hat, deren öffnende Klammer nie geschlossen wird, links das Skriptfeld mit den Zählern darunter, die neun Zeilen, einundfünfzig Token und einhundertsiebenundfünfzig Zeichen anzeigen, und rechts eine Zusammenfassungszeile, die Zeile eins nicht geschlossene Klammer, die Analyse hielt hier an lautet, darüber ein einziger Hinweis, dass diese Klammer nie geschlossen wird und deshalb jede Zeile danach als Teil dessen gelesen wurde, was sie öffnete
Sechs Prüffamilien und ein Hinweis auf einmal: Die Analyse hält beim ersten Fehler an, also wäre alles danach geraten.

Die zweite ist eine nicht geschlossene Zeichenkette oder ein offenes Template. Weil der Zerleger alles nach einem öffnenden Anführungszeichen verschluckt, nennt der Hinweis sowohl das Zeichen als auch das Dateiende, an dem die Suche aufhörte.

Die dritte ist ein Token, das die Grammatik nicht erlaubt. Zwei Operatoren hintereinander, ein Komma an falscher Stelle oder ein Pfeil ohne etwas davor. Dabei kommt jedes mit dem Token selbst.

Die vierte ist ein Schlüsselwort, das als Name missbraucht wird. Deshalb lehnt der Leser eine Zuweisung an ein reserviertes Wort ab, und eine damit benannte Variable, bevor überhaupt etwas läuft.

Die fünfte ist eine Doppelung in einem Geltungsbereich. Zwei Parameter mit demselben Namen, oder ein let, das einen im gleichen Block bereits deklarierten Namen wiederholt. Weil im ersten Fall der zweite gewinnt und im zweiten eine Ausnahme fliegt, nennt der Leser beide.

Die sechste ist ein return außerhalb einer Funktion, und seine Verwandten. Ein break ohne Schleife, ein case ohne switch und ein yield ohne Generator. Also gehören diese an eine Position und an keine andere.

Was diese Seite nicht tut

Sie führt Ihr Skript nicht aus. Nichts hier erzeugt eine Funktion, setzt eine Variable oder startet einen Timer, also kann nichts auf der Seite handeln, während Sie lesen.

Bildschirmfoto zweier Spalten unter dem Validator-Ergebnis mit der Überschrift wo das Lesen aufhört, die erste mit der Überschrift prüft und der Liste Syntaxfehler, Klammerbalance, nicht geschlossene Zeichenketten und Templates, reservierte Wörter als Namen, doppelte Deklarationen und falsch gesetztes return, break oder yield, die zweite mit der Überschrift prüft nicht und der Liste Laufzeitfehler, Typfehler, Browser-Unterstützung und ob der Code tut, was Sie meinten
Grammatik links, alles, was eine Engine braucht, rechts.

Sie meldet keinen Laufzeitfehler, keinen Typfehler und keinen fehlgeschlagenen Netzwerkaufruf. Weil die eine Engine brauchen, und eine Engine haben Sie im Tab daneben schon.

Sie korrigiert den Code nicht. Eine Vermutung über die fehlende Klammer ist ein Hinweis und keine Änderung, denn eine automatische Korrektur kann aus einem klaren Fehler eine stille Verhaltensänderung machen.

Sie prüft keine Typen. Eine Datei mit einer Typangabe trägt mehr als JavaScript, also fügen Sie die Ausgabe Ihres Compilers ein und nicht seine Eingabe.

Schritt für Schritt

So verwenden Sie den JavaScript-Validator

Vier Schritte, und keiner braucht ein Konto.

  • 1

    Skript einfügen

    Fügen Sie zuerst eine ganze Datei oder eine Funktion ein. Weil der Leser mit Text und nicht mit einer kompilierten Form arbeitet, genügt ein Ausschnitt, sobald seine Klammern aufgehen.

  • 2

    Quelltyp wählen

    Wählen Sie dann ein Skript oder ein Modul. Weil import und export zu einem Modul gehören, entscheidet diese Wahl, ob der Leser sie als gültig oder als Fehler liest.

  • 3

    Ersten Hinweis lesen

    Gehen Sie anschließend zu Zeile und Spalte, die er nennt. Weil die Analyse beim ersten Fehler stehen bleibt, ist der zweite Hinweis eine Folge und kein zweites Versehen.

  • 4

    Beheben, erneut prüfen, weitermachen

    Bearbeiten Sie schließlich in Ihrem Editor und fügen Sie es zurück ein, um zu bestätigen, dass der Zähler null ist. Danach ist die Datei für den Minifizierer oder für den Browser bereit.

Warum diese Seite

Warum diesen JavaScript-Validator verwenden

Fünf Gründe, und jeder spart eine Sitzung Fehlersuche.

  • Er nennt Zeile und Spalte

    Weil der Hinweis beide trägt, landen Sie auf dem Zeichen und nicht auf der Gegend. Dann ist eine Datei mit zweihundert Zeilen eine kurze Lesung und keine Jagd.

  • Er erklärt, warum die Analyse anhielt

    Ein Hinweis sagt, was die Grammatik an dieser Stelle erwartete. Daher ist die Korrektur meist aus dem Hinweis allein klar, ohne eine zweite Meinung.

  • Nichts wird ausgeführt

    Weil das Skript nur gelesen wird, kann ein Schnipsel von einem Fremden nicht handeln, während Sie ihn ansehen. Also ist ein Validator der sichere Ort, um einen einzufügen.

  • Nichts wird hochgeladen

    Die Analyse passiert hier und sonst nirgends. Deshalb lässt sich eine Datei aus einem privaten Repository gefahrlos einfügen.

  • Er liest moderne Syntax

    Weil die Grammatik dem aktuellen Standard folgt, werden eine Pfeilfunktion, eine optionale Verkettung und ein Klassenfeld gelesen. Also wird eine moderne Datei nicht beanstandet, weil sie modern ist.

Daumenregeln

Gewohnheiten, die ein Skript lesbar halten

Sechs Gewohnheiten, die ein Skript leicht lesbar und schnell prüfbar halten.

  • Schließen Sie die Klammer beim Öffnen Dann ist der Partner schon da, wenn Sie die Mitte füllen. Nämlich eine kleine Gewohnheit entfernt die teuerste Klasse von Syntaxfehlern.
  • Schreiben Sie im strikten Modus Ein Modul ist von vornherein streng, und ein Skript kann mit einer Anweisung in der ersten Zeile darum bitten. Weil der strikte Modus mehrere stille Versehen zu Fehlern macht, hält Ihre Engine bei ihnen an, statt leise weiterzulaufen.
  • Bevorzugen Sie const, dann let Ein im Block deklariertes var gehört der Funktion, und dort versteckt sich die versehentliche Wiederverwendung. Daher können zwei Namen, die getrennt aussehen, ein Name sein.
  • Eine Anweisung pro Zeile Eine Engine setzt fehlende Semikolons selbst, und sie trifft nicht immer, was Sie meinten. Weil eine Anweisung pro Zeile die Zweideutigkeit entfernt, muss der Leser nie raten.
  • Prüfen, bevor Sie minifizieren Ein Minifizierer vertraut seiner Eingabe, also kommt ein kaputtes Skript kaputt und schwerer lesbar heraus. Folglich prüfen Sie zuerst die lesbare Datei, wo Zeilennummern etwas bedeuten.
  • Fügen Sie die kompilierte Ausgabe ein Eine Typangabe ist kein JavaScript, also wird eine Datei mit einer nicht gelesen. Daher lassen Sie zuerst den Compiler laufen und prüfen, was er ausgab.
Vorsicht hier

Sechs Wege, auf denen ein Skript nicht gelesen wird

Jeder davon hält die ganze Datei an, deshalb fällt keiner lange unbemerkt aus.

  • Eine Klammer in falscher Reihenfolge geschlossen

    Vorsicht hier. Eine Engine sieht ein Paar, das nicht passt, statt eines fehlenden Zeichens, deshalb zeigt der Hinweis auf die falsch aussehende Zeile und nicht auf die falsche.

  • Ein Anführungszeichen in einer Zeichenkette derselben Art

    Ein nicht geschütztes Anführungszeichen beendet die Zeichenkette zu früh. Weil der Zerleger den Rest dann als Code liest, erscheint der Fehler viele Zeilen nach dem Versehen.

  • Ein Schrägstrich, der Division bedeutet

    Zwei Zeilen unter einem fehlenden Semikolon kann ein Schrägstrich einen regulären Ausdruck beginnen statt zu teilen. Folglich wird aus einem fehlenden Zeichen ein verwirrender Fehler über ein Muster.

  • Ein Template, das nie geschlossen wird

    Ein offen gelassener Backtick verschluckt den Rest der Datei. Also nennt der Hinweis den öffnenden Backtick und das Eingabeende statt der Zeile, die Sie beheben wollten.

  • Ein Komma, wo ein Semikolon hingehörte

    In einem Objekt ist ein Komma richtig und in einem Block ist es falsch. Weil die beiden auf den ersten Blick gleich aussehen, übersteht dieser Fehler eine sorgfältige Lesung.

  • Ein Schlüsselwort als Name

    Etwas namens class oder default wird an einer Position gelesen und an einer anderen nicht. Daher kann ein Name, der in einer Datei lief, in der nächsten ein Fehler sein.

Fragen

Fragen zum JavaScript-Validator

Ist dieser JavaScript-Validator kostenlos?

Ja. Es gibt kein Konto, kein Limit und keinen bezahlten Tarif. Deshalb prüfen Sie so viele Skripte, wie Sie möchten.

Führt er meinen Code aus?

Nie. Der Leser nimmt das Skript als Text und zerlegt es, und er ruft keine Funktion auf. Deshalb kann ein Schnipsel von einem Fremden nicht handeln, während Sie ihn ansehen.

Was prüft er?

Sechs Familien: Klammerbalance, nicht geschlossene Zeichenketten und Templates, Token, die die Grammatik ablehnt, reservierte Wörter als Namen, Doppelungen in einem Geltungsbereich und falsch gesetztes return, break oder yield.

Welche JavaScript-Version akzeptiert er?

Den aktuellen Standard, bis ES2024. Deshalb werden eine Pfeilfunktion, eine optionale Verkettung, ein Klassenfeld und ein await auf oberster Ebene in einem Modul ohne Klage gelesen.

Findet er Laufzeitfehler?

Nein. Ein Laufzeitfehler braucht eine Engine, die den Code ausführt, und das ist eine andere Aufgabe. Daher beantwortet diese Seite nur die Frage der Grammatik.

Warum meldet er nur einen Fehler?

Weil die Analyse beim ersten Fehler stehen bleibt. Alles danach ist eine Vermutung, und eine Tatsache hilft mehr als hundert Vermutungen.

Wird mein Skript irgendwohin hochgeladen?

Nein. Die ganze Prüfung läuft in diesem Browser-Tab. Deshalb bleibt ein Skript unter einer Verschwiegenheitsklausel dort, wo es ist.

Kann ich einen Ausschnitt statt einer ganzen Datei prüfen?

Ja. Eine einzelne Funktion genügt, sobald ihre Klammern aufgehen. Die Zeilennummern beziehen sich dann auf die Zeilen, die Sie eingefügt haben.

Versteht er JSX oder TypeScript?

Nicht direkt, denn das sind Erweiterungen und nicht JavaScript. Lassen Sie also zuerst den Compiler laufen und prüfen Sie, was er ausgibt.

Was ist der Unterschied zwischen einem Syntaxfehler und einem Typfehler?

Ein Syntaxfehler bedeutet, dass kein Teil der Datei gelaufen ist. Ein Typfehler passiert zur Laufzeit, in einer Zeile, die gelesen wurde. Deshalb verlangen beide eine andere Fehlersuche.

Prüft er die Browser-Unterstützung?

Nein. Eine Anweisung kann gültig sein und im entscheidenden Browser trotzdem nichts tun. Grammatik und Unterstützung sind nämlich getrennte Fragen.

Kann er den Fehler für mich beheben?

Nein, und das ist Absicht. Eine automatische Korrektur kann aus einem klaren Fehler eine stille Verhaltensänderung machen, und die findet man schwerer als den Hinweis.

Warum wird mein Code wegen eines Schrägstrichs beanstandet?

Ein Schrägstrich ist eine Division oder der Anfang eines regulären Ausdrucks, und die Antwort hängt vom Token davor ab. Ohne Semikolon an der richtigen Stelle muss der Leser eines wählen, und dann sagt der Hinweis, welches.

Funktioniert er mit einem Modul?

Ja. Wählen Sie den Quelltyp Modul, dann werden import und export gültig, während ein einfaches Skript beide als Fehler liest. Außerdem behandelt ein Modul let, static und yield als reserviert, sodass ein Name, der in einem Skript durchgeht, hier scheitern kann.

Kann ich eine minifizierte Datei prüfen?

Ja, allerdings helfen die Zeilennummern dann viel weniger. Weil eine minifizierte Datei meist eine sehr lange Zeile ist, gehen Sie für die Korrektur zur lesbaren Quelle zurück.

Zählt er etwas?

Ja. Die Zusammenfassung nennt Zeilen, Token und Zeichen, was hilft, wenn Sie prüfen, ob beim Einfügen am Ende etwas verloren ging.

Ist das dasselbe wie ein Linter?

Nein. Ein Linter nennt Stilprobleme und unbenutzte Variablen, die einen Parser nicht interessieren. Deshalb heißt ein sauberes Ergebnis hier, dass die Datei gelesen wird, und nichts weiter.

Funktioniert er auf dem Handy?

Ja. Die Felder stapeln sich und die Hinweise umbrechen. Deshalb gelingt eine schnelle Prüfung auch vom Handy, obwohl eine lange Datei mit Tastatur leichter fällt.

Kann ich die Hinweise herunterladen?

Ja. Der Download schreibt die Hinweise in eine Textdatei, was praktisch ist, sobald ein Ticket die genauen Zeilennummern braucht.

Brauche ich ein Konto oder eine Erweiterung?

Nein. Es gibt keine Anmeldung, kein Plugin und keine Erweiterung. Deshalb schließen Sie den Tab, sobald das Skript gelesen wird.

Weiter geht es

Werkzeuge, die dazu passen

Vier Seiten, zu denen dieselbe Arbeit meist führt.

  • JavaScript-Minifizierer

    Sobald das Skript gelesen wird, nehmen Sie Leerzeichen und Kommentare heraus. Weil ein Browser jedes Byte lädt, minifizieren Sie nach dem Prüfen und nicht davor.

    Tool öffnen →
  • Code-Verschönerer

    Eine Datei, die gelesen wird, kann sich trotzdem schlecht lesen. Rücken Sie sie also neu ein und klären Sie den Klammerstil vor der nächsten Prüfung.

    Tool öffnen →
  • JSON-Formatierer

    Die meisten Skriptfehler hier kommen von Daten statt von Logik. Falten Sie die Nutzlast also auf und prüfen Sie, ob sie ebenfalls gelesen wird.

    Tool öffnen →
  • CSS-Validator

    Die andere Hälfte eines Frontend-Builds. Weil der Browser eine Deklaration mit Tippfehler still verwirft, verdient dieses Stylesheet die gleiche Prüfung.

    Tool öffnen →

Finden Sie die Zeile, die die Engine ablehnen würde

Fügen Sie das Skript ein, lesen Sie den ersten Hinweis, beheben Sie ihn und starten Sie erneut. Nichts wird ausgeführt und nichts hochgeladen. Außerdem sind die meisten Dateien geprüft, bevor das Wasser kocht, denn der Hinweis nennt Ihnen das Zeichen.