Aucune cause visible pour "Jeton inattendu ILLEGAL"
Lorsque vous rencontrez l'erreur JavaScript "Uncaught SyntaxError: Jeton inattendu ILLEGAL", la réaction initiale peut être un manque de cause perceptible, en particulier pour un code apparemment simple comme "var foo = 'bar';".
Source de l'erreur
Lorsque le code JavaScript est analysé, il se décompose en « jetons » et tout jeton qui ne peut pas être classé dans la catégorie quatre types de base reçoivent le label "ILLEGAL". Cette erreur peut également provenir de caractères mal placés ou d'éléments syntaxiques manquants, tels que des symboles @ parasites, des accolades déséquilibrées, des citations inappropriées, etc.
Caractère illégal invisible
Dans les cas où la syntaxe semble valide, le coupable peut être un caractère invisible : l'espace Unicode de largeur nulle (ZWSP ou U 200B), noté . Ce caractère provoque généralement l'erreur « Jeton inattendu ILLEGAL », provenant de sources comme jsfiddle, qui est connu pour intégrer des ZWSP pour contrôler le retour à la ligne.
Identification du caractère invisible
Pour repérer le ZWSP, activez l'affichage des caractères invisibles dans votre éditeur. Dans Vim, par exemple, il s'affiche sous la forme
Problèmes connexes
ZWSP sert un objectif légitime, permettant un contrôle précis du retour à la ligne. Cependant, sa présence peut également introduire d'autres problèmes, tels que :
Spécification ECMAScript
Bien que la spécification ECMAScript mentionne des caractères d'espacement similaires, il lui manque une mention explicite de ZWSP. Cependant, la référence aux « séparateurs d'espace » dans la spécification suggère que ZWSP devrait, en fait, être considéré comme un espace. Néanmoins, les implémentations actuelles le traitent comme un jeton inattendu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!