Maison >interface Web >js tutoriel >Pourquoi mon code JavaScript génère-t-il une erreur « Jeton inattendu ILLEGAL » ?

Pourquoi mon code JavaScript génère-t-il une erreur « Jeton inattendu ILLEGAL » ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-14 10:24:10362parcourir

Why Does My JavaScript Code Throw an

"Jeton inattendu ILLEGAL" : un coupable caché

Malgré son apparence simple, le code qui a provoqué l'erreur "Jeton inattendu ILLEGAL" contient un personnage invisible qui est le véritable coupable. Ce caractère invisible est le caractère espace de largeur nulle (ZWSP) Unicode U 200B.

Origine du caractère invisible

La source du caractère ZWSP est souvent inconnue, mais elle se trouve généralement dans le code collé à partir de jsfiddle ou des outils de développement Chrome. Dans jsfiddle, le caractère est utilisé pour contrôler le retour à la ligne des mots.

Identification du caractère invisible

Bien qu'invisible, le caractère ZWSP peut être détecté en activant l'affichage des caractères invisibles. caractères dans votre éditeur de code ou à l’aide d’outils de débogage en ligne. Des éditeurs comme Vim affichent le caractère sous la forme , tandis que des outils comme jsbin et CodePen.io l'affichent sous la forme d'un point rouge.

Effets et problèmes associés

Le Le caractère ZWSP peut provoquer divers problèmes, notamment :

  • Syntaxe JavaScript erreurs
  • Espaces invisibles ou espaces supplémentaires sur les pages Web
  • Affichage du caractère sous forme de caractères autres que des espaces si l'encodage de la page Web n'est pas reconnu comme UTF-8
  • Analyse incorrecte de code CSS entraînant des problèmes de style

ECMAScript Spécification

La spécification ECMAScript ne mentionne pas explicitement le caractère U 200B comme jeton inattendu. Toutefois, il suggère que les caractères similaires (U 200C et U 200D) soient traités comme faisant partie des identifiants lorsqu'ils ne font pas partie de certains éléments de code. Le comportement des implémentations (Chrome et Firefox) en traitant le ZWSP comme un jeton inattendu semble incompatible avec la spécification.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn