Cookies Ce site ne conserve que ce dont il a besoin pour fonctionner. Il n’y a aujourd’hui ni mesure d’audience ni publicité, et rien ici ne vous suit sur d’autres sites. Lire la politique de confidentialité

Choisir ce que j’autorise
+92 312 8299940Devis gratuit
Outil gratuit, rien à installer

Validateur JavaScript
Nomme la ligne, pas seulement l’erreur

Ce validateur JavaScript analyse un script comme le ferait un moteur et signale la première chose qui l’arrête. De plus, chaque note porte une ligne, une colonne et le jeton en cause, ainsi vous allez droit au but. Rien de ce que vous collez ne quitte le navigateur et rien ne s’exécute.

  • GratuitPrix
  • ES2024Analyse
  • JamaisExécute le code
  • AucunEnvois

JavaScript Validator

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

Rien de lu pour l’instant.

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

Votre navigateur fait tout le travail ici, dans cet onglet. Nous n’envoyons rien, ne stockons rien et n’enregistrons rien.
La version courte

Ce que vérifie un validateur JavaScript

Un moteur lit un script entier avant d’en lancer une seule ligne. Par conséquent, une parenthèse cassée n’importe où arrête le fichier, et l’onglet reste blanc.

C’est pour cette panne qu’existe ce validateur JavaScript. Il parcourt le script comme du texte, puis signale le premier endroit où la grammaire casse, avec la ligne et la colonne.

Par ailleurs, il vérifie la forme de ce qu’il a lu. Une accolade sans partenaire, une chaîne qui ne ferme jamais, un mot-clé employé comme nom, une virgule égarée dans la liste d’arguments d’un appel.

Il ne construit aucun contexte d’exécution, ainsi il ne crée aucune globale et n’appelle aucune fonction. Car le lecteur ne fait que lire le script, vous pouvez pointer un validateur sur du code que vous ne lanceriez jamais sur une page à vous.

Rien ne quitte cet onglet. C’est pourquoi un script client sous accord de confidentialité se lit exactement comme un script public.

Comment un validateur JavaScript lit un script

La première passe transforme le texte en jetons. Un nombre, une chaîne, un gabarit, une expression régulière, un nom, un opérateur et un mot-clé sont des choses différentes, et le lecteur décide caractère par caractère ce qu’il regarde.

Schéma d’une ligne de JavaScript découpée en une rangée de jetons colorés, un mot-clé, un nom, un signe égal, une chaîne, un point-virgule, puis une expression régulière écrite entre deux barres obliques avec une note à côté qui explique qu’une barre après un nom est une division alors qu’une barre après une parenthèse ouvrante commence une expression régulière, sous un titre qui dit découper d’abord, analyser ensuite
Une ligne, deux passes, et une barre oblique qui veut dire deux choses différentes.

Ensuite la seconde passe parcourt ces jetons dans l’ordre et vérifie la forme de ce qu’elle lit : quelles parenthèses restent ouvertes, quels noms une portée tient déjà, et si un mot comme return a une fonction autour de lui. Le règlement ici est ECMA-262, la norme derrière chaque moteur.

L’ordre compte, et il explique un nombre surprenant de messages d’erreur. Car la découpe en jetons vient d’abord, un script qui semble avoir un souci de parenthèses tient souvent un guillemet qui n’a jamais fermé.

Un cas demande un second regard plutôt qu’une règle : une barre oblique est un opérateur de division ou le début d’une expression régulière, et la réponse dépend du jeton précédent. C’est pourquoi le découpeur demande au dernier jeton ce qu’il était.

Les gabarits ajoutent un pli de plus. Car un gabarit peut contenir une expression entre accolades, le découpeur garde une pile du gabarit où il se trouve. Ainsi une accolade dans une chaîne est du texte, et une accolade dans un gabarit est du code.

Pourquoi un script valide peut rester faux

Grammaire et sens sont deux couches séparées. Un validateur répond à la question de la grammaire, et tous ceux qui servent s’arrêtent là.

Ainsi un script passe avec une variable jamais déclarée en mode strict, une propriété lue sur une valeur qui contient undefined à cet instant, ou un await dans une fonction qui n’est pas asynchrone. Chacun de ces cas est un souci d’exécution.

La frontière entre les deux mérite d’être retenue. Une erreur de syntaxe signifie qu’aucune partie du fichier n’a tourné, et une erreur d’exécution signifie que le fichier a tourné jusqu’à cette ligne. Par conséquent, les deux demandent un dépannage totalement différent.

Voilà pourquoi cette page nomme la première erreur plutôt que cent. Car l’analyse s’arrête là, tout ce qui suit relève de la devinette, et une liste de suppositions pèse moins qu’un fait.

Les six vérifications et ce que chacune veut dire

La première vérification est l’équilibre des parenthèses. Le lecteur signale une accolade, un crochet ou une parenthèse sans partenaire à l’endroit où il a renoncé. En effet, c’est la seule panne qui coûte le fichier entier.

Capture du validateur JavaScript après la lecture d’une fonction de neuf lignes dont l’accolade ouvrante ne ferme jamais, le panneau du script à gauche avec les compteurs en dessous qui indiquent neuf lignes, cinquante et un jetons et cent cinquante-sept caractères, et à droite une ligne de résumé qui dit ligne un accolade non fermée, l’analyse s’est arrêtée ici, au-dessus d’une seule note disant que cette accolade ne ferme jamais, donc toutes les lignes suivantes ont été lues comme faisant partie de ce qu’elle a ouvert
Six familles de vérification, et une note à la fois : l’analyse s’arrête à la première erreur, donc tout ce qui suit serait une devinette.

La seconde est une chaîne ou un gabarit non fermé. Car le découpeur avale tout ce qui suit un guillemet ouvrant, la note nomme à la fois le guillemet et la fin du fichier où la recherche s’est arrêtée.

La troisième est un jeton que la grammaire n’autorise pas. Deux opérateurs d’affilée, une virgule au mauvais endroit, ou une flèche sans rien devant. Ainsi chacun arrive avec le jeton lui-même.

La quatrième est un mot-clé détourné en nom. C’est pourquoi le lecteur refuse une affectation à un mot réservé, et une variable nommée ainsi, avant que quoi que ce soit tourne.

La cinquième est un doublon dans une même portée. Deux paramètres du même nom, ou un let qui répète un nom déjà déclaré dans le même bloc. Car le second gagne dans le premier cas et lève dans le second, le lecteur nomme les deux.

La sixième est un return hors d’une fonction, et ses parents. Un break sans boucle, un case sans switch, et un yield sans générateur. Donc ceux-là tiennent à une position et à aucune autre.

Ce que cette page ne fera pas

Elle ne lancera pas votre script. Rien ici ne crée de fonction, n’affecte de variable et ne démarre de minuteur, donc rien ne peut agir sur la page pendant que vous lisez.

Capture de deux colonnes sous le résultat du validateur intitulées là où la lecture s’arrête, la première intitulée vérifie et listant les erreurs de syntaxe, l’équilibre des parenthèses, les chaînes et gabarits non fermés, les mots réservés employés comme noms, les déclarations en doublon et un return, un break ou un yield mal placé, la seconde intitulée ne vérifie pas et listant les erreurs d’exécution, les erreurs de type, la compatibilité des navigateurs et si le code fait ce que vous vouliez
La grammaire à gauche, tout ce qui exige un moteur à droite.

Elle ne signalera ni erreur d’exécution, ni erreur de type, ni appel réseau raté. Car ceux-là exigent un moteur, et un moteur, vous l’avez déjà dans l’onglet voisin.

Elle ne corrigera pas le code. Une supposition sur la parenthèse manquante est une note et non une modification, car une correction automatique peut transformer une erreur claire en changement de comportement silencieux.

Elle ne vérifiera pas les types. Un fichier portant une annotation de type contient plus que du JavaScript, donc collez la sortie de votre compilateur plutôt que son entrée.

Pas à pas

Comment utiliser le validateur JavaScript

Quatre étapes, et aucune ne réclame de compte.

  • 1

    Collez le script

    Collez d’abord un fichier entier ou une fonction. Car le lecteur travaille sur du texte plutôt que sur une forme compilée, un fragment convient tant que ses parenthèses s’équilibrent.

  • 2

    Choisissez le type de source

    Choisissez ensuite un script ou un module. Car import et export appartiennent à un module, ce choix décide si le lecteur les lit comme valides ou comme une faute.

  • 3

    Lisez la première note

    Allez après cela à la ligne et à la colonne qu’elle nomme. Car l’analyse s’arrête au premier échec, la seconde note est une conséquence plutôt qu’une seconde faute.

  • 4

    Corrigez, relancez, puis continuez

    Modifiez enfin dans votre éditeur et recollez pour confirmer que le compte est à zéro. Après cela, le fichier est prêt pour le minificateur ou pour le navigateur.

Pourquoi cette page

Pourquoi utiliser ce validateur JavaScript

Cinq raisons, et chacune épargne une séance de dépannage.

  • Il nomme une ligne et une colonne

    Car la note porte les deux, vous tombez sur le caractère plutôt que sur la zone. Ainsi un fichier de deux cents lignes est une lecture courte plutôt qu’une chasse.

  • Il explique pourquoi l’analyse s’est arrêtée

    Une note dit ce que la grammaire attendait à cet endroit. Par conséquent, la correction est souvent claire avec la note seule, sans second avis.

  • Rien ne s’exécute

    Car le script est seulement lu, un extrait venu d’un inconnu ne peut rien faire pendant que vous le regardez. Ainsi un validateur est l’endroit sûr pour en coller un.

  • Rien n’est envoyé

    L’analyse se passe ici et nulle part ailleurs. C’est pourquoi un fichier venu d’un dépôt privé se colle sans risque.

  • Il lit la syntaxe moderne

    Car la grammaire suit la norme actuelle, une fonction fléchée, un chaînage optionnel et un champ de classe passent tous. Ainsi un fichier moderne n’est pas signalé pour être moderne.

Règles pratiques

Les habitudes qui gardent un script analysable

Six habitudes qui gardent un script facile à lire et rapide à valider.

  • Fermez la parenthèse en l’ouvrant Ainsi le partenaire est déjà là quand vous remplissez le milieu. En effet, une petite habitude supprime la classe d’erreur de syntaxe la plus chère.
  • Écrivez en mode strict Un module est strict par défaut, et un script peut le demander avec une directive sur la première ligne. Car le mode strict change plusieurs fautes silencieuses en erreurs, votre moteur s’arrête dessus au lieu de continuer sans rien dire.
  • Préférez const, puis let Un var déclaré dans un bloc appartient à la fonction, et c’est là que se cache la réutilisation accidentelle. Par conséquent, deux noms qui semblent séparés peuvent n’être qu’un.
  • Une instruction par ligne Un moteur insère les points-virgules manquants, pourtant il ne devine pas toujours ce que vous vouliez dire. Car une instruction par ligne retire l’ambiguïté, le lecteur n’a jamais à deviner.
  • Validez avant de minifier Un minificateur fait confiance à son entrée, donc un script cassé sort cassé et plus dur à lire. Par conséquent, vérifiez d’abord le fichier lisible, où les numéros de ligne veulent dire quelque chose.
  • Collez la sortie compilée Une annotation de type n’est pas du JavaScript, donc un fichier qui en porte une ne passera pas. Lancez donc le compilateur d’abord, puis vérifiez ce qu’il a produit.
Attention ici

Six façons dont un script échoue à l’analyse

Chacune arrête le fichier entier, c’est pourquoi aucune ne passe inaperçue une fois arrivée.

  • Une parenthèse fermée dans le mauvais ordre

    Attention ici. Un moteur voit une paire qui ne correspond pas plutôt qu’un signe manquant, donc la note pointe la ligne qui a l’air fausse et non celle qui l’est.

  • Un guillemet dans une chaîne du même type

    Un guillemet non échappé termine la chaîne trop tôt. Car le découpeur lit ensuite le reste comme du code, l’erreur apparaît bien des lignes après la faute.

  • Une barre oblique qui veut dire division

    Deux lignes sous un point-virgule manquant, une barre peut commencer une expression régulière au lieu de diviser. Par conséquent, un signe manquant devient une erreur confuse sur un motif.

  • Un gabarit qui ne ferme jamais

    Un accent grave laissé ouvert avale le reste du fichier. Ainsi la note nomme l’accent ouvrant et la fin de l’entrée plutôt que la ligne que vous vouliez corriger.

  • Une virgule là où un point-virgule allait

    Dans un objet une virgule est juste et dans un bloc elle est fausse. Car les deux se ressemblent au premier coup d’œil, celle-ci survit à une lecture attentive.

  • Un mot-clé employé comme nom

    Quelque chose appelé class ou default passe à une position et pas à une autre. Par conséquent, un nom qui marchait dans un fichier peut être une erreur dans le suivant.

Questions

Questions sur le validateur JavaScript

Ce validateur JavaScript est-il gratuit ?

Oui. Il n’y a ni compte, ni limite, ni offre payante. Ainsi vous validez autant de scripts que vous voulez.

Exécute-t-il mon code ?

Jamais. Le lecteur prend le script comme du texte et l’analyse, et il n’appelle aucune fonction. C’est pourquoi un extrait venu d’un inconnu ne peut rien faire pendant que vous le regardez.

Que vérifie-t-il ?

Six familles : l’équilibre des parenthèses, les chaînes et gabarits non fermés, les jetons que la grammaire refuse, les mots réservés employés comme noms, les doublons dans une portée, et un return, un break ou un yield mal placé.

Quelle version de JavaScript accepte-t-il ?

La norme actuelle, jusqu’à ES2024. Ainsi une fonction fléchée, un chaînage optionnel, un champ de classe et un await de premier niveau dans un module passent tous.

Trouve-t-il les erreurs d’exécution ?

Non. Une erreur d’exécution exige un moteur qui lance le code, et c’est un autre travail. Par conséquent, cette page ne répond qu’à la question de la grammaire.

Pourquoi ne signale-t-il qu’une seule erreur ?

Car l’analyse s’arrête au premier échec. Tout ce qui suit est une supposition, et un fait sert plus que cent suppositions.

Mon script est-il envoyé quelque part ?

Non. Toute la vérification tourne dans cet onglet. Ainsi un script sous clause de confidentialité reste où il est.

Puis-je valider un fragment plutôt qu’un fichier entier ?

Oui. Une seule fonction suffit tant que ses parenthèses s’équilibrent. Les numéros de ligne renvoient ensuite aux lignes que vous avez collées.

Comprend-il JSX ou TypeScript ?

Pas directement, car ce sont des extensions et non du JavaScript. Lancez donc le compilateur d’abord, puis validez ce qu’il produit.

Quelle différence entre une erreur de syntaxe et une erreur de type ?

Une erreur de syntaxe signifie qu’aucune partie du fichier n’a tourné. Une erreur de type arrive à l’exécution, sur une ligne qui a bien passé. C’est pourquoi les deux demandent un dépannage différent.

Vérifie-t-il la compatibilité des navigateurs ?

Non. Une instruction peut être valide et ne rien faire dans le navigateur qui compte. En effet, grammaire et compatibilité sont deux questions séparées.

Peut-il corriger l’erreur à ma place ?

Non, et c’est voulu. Une correction automatique peut transformer une erreur claire en changement de comportement silencieux, pourtant bien plus dur à trouver que la note.

Pourquoi mon code est-il signalé pour une barre oblique ?

Une barre est une division ou le début d’une expression régulière, et la réponse dépend du jeton précédent. Sans point-virgule au bon endroit le lecteur doit en choisir un, puis la note dit lequel.

Fonctionne-t-il avec un module ?

Oui. Choisissez le type de source module, ensuite import et export deviennent valides, tandis qu’un script simple lit les deux comme une erreur. De plus, un module traite let, static et yield comme réservés, donc un nom qui passe dans un script peut échouer ici.

Puis-je valider un fichier minifié ?

Oui, cependant les numéros de ligne servent beaucoup moins. Car un fichier minifié tient souvent sur une seule ligne, revenez à la source lisible pour la correction.

Compte-t-il quelque chose ?

Oui. Le résumé donne les lignes, les jetons et les caractères, ce qui aide quand vous vérifiez si un collage a perdu quelque chose à la fin.

Est-ce la même chose qu’un linter ?

Non. Un linter signale les problèmes de style et les variables inutilisées, dont un analyseur ne se soucie pas. C’est pourquoi un résultat propre ici veut dire que le fichier passe, et rien de plus.

Fonctionne-t-il sur un téléphone ?

Oui. Les panneaux s’empilent et les notes reviennent à la ligne. Ainsi une vérification rapide passe depuis un téléphone, cependant un long fichier reste plus simple au clavier.

Puis-je télécharger les notes ?

Oui. Le téléchargement écrit les notes dans un fichier texte, ce qui sert quand un ticket réclame les numéros de ligne exacts.

Faut-il un compte ou une extension ?

Non. Il n’y a ni inscription, ni greffon, ni extension à ajouter. Ainsi vous fermez l’onglet dès que le script passe.

On continue

Les outils qui vont avec celui-ci

Quatre pages où le même travail mène souvent.

  • Minificateur JavaScript

    Dès que le script passe, retirez les espaces et les commentaires. Car un navigateur télécharge chaque octet, minifiez après avoir validé plutôt qu’avant.

    Ouvrir l’outil →
  • Embellisseur de code

    Un fichier qui passe peut quand même se lire mal. Réindentez-le donc et fixez le style d’accolades avant la relecture suivante.

    Ouvrir l’outil →
  • Formateur JSON

    La plupart des pannes de script ici viennent des données plutôt que de la logique. Dépliez donc la charge et vérifiez qu’elle passe aussi.

    Ouvrir l’outil →
  • Validateur CSS

    L’autre moitié d’une compilation front-end. Car le navigateur jette en silence une déclaration avec une faute de frappe, cette feuille mérite la même vérification.

    Ouvrir l’outil →

Trouvez la ligne que le moteur refuserait

Collez le script, lisez la première note, corrigez-la puis relancez. Rien ne s’exécute et rien n’est envoyé. De plus, la plupart des fichiers passent avant que l’eau bouille, car la note vous dit quel caractère regarder.