SyntaxError: illegal character

Message

SyntaxError: Invalid character (Edge)
SyntaxError: illegal character (Firefox)
SyntaxError: Invalid or unexpected token (Chrome)

Type d'erreur

SyntaxError

Quel est le problème ?

Dans le code, il y a un √©l√©ment de la syntaxe qui n'est pas √† la bonne place. Pour d√©tecter les erreurs de ce type, vous pouvez utiliser un √©diteur de texte qui prend en charge la coloration syntaxique et qui met en √©vidence les caract√®res probl√©matiques (par exemple si on a utilis√© un tiret ( ‚Äď ) au lieu d'un moins ( - ) ou des guillemets anglais ( ‚Äú ) √† la place de doubles quotes ( " ).

Exemples

Caractères ressemblants

Certains caractères ressemblent à des caractères spéciaux en JavaScript mais n'en sont pas. Dans ce cas, lorsque le moteur analysera le code, il échouera.

‚ÄúCeci ressemble √† une cha√ģne de caract√®res.‚ÄĚ;
// “ n'est pas le caractère "
// SyntaxError: illegal character

42 ‚Äď 13;
// ‚Äď n'est pas le caract√®re -
// SyntaxError: illegal character

var toto = "truc"Õĺ
// Õĺ (<37e>) n'est pas le caract√®re ;
// SyntaxError: illegal character

On peut corriger ce point en utilisant les bons caractères :

"Ceci est vraiment une cha√ģne de caract√®res.";
42 - 13;
var toto = "truc";

Certains éditeurs et environnements de développement intégrés indiqueront la présence de tels caractères avec une coloration syntaxique différente. Toutefois, tous les éditeurs n'ont pas une telle fonctionnalité et si vous n'arrivez pas à déterminer l'origine du problème, il vaudra sans doute mieux supprimer la ligne incriminée et la resaisir manuellement.

Caractères oubliés

On oublie parfois un caractère.

var couleurs = ['#000', #333', '#666'];
// SyntaxError: illegal character

Dans ce cas, il suffit de rajouter la quote pour '#333'.

var couleurs = ['#000', '#333', '#666'];

Caractères cachés

Lorsque vous copiez/collez du code depuis des sources externes, celles-ci peuvent contenir des caractères invalides difficiles à discerner.

var toto = 'truc';‚Äč
// SyntaxError: illegal character

Lorsqu'on inspecte ce code gr√Ęce √† un √©diteur de texte (par exemple Vim), on peut voir qu'il y en fait un espace sans chasse (ZWSP) (U+200B).

var toto = 'truc';‚Äč<200b>

Voir aussi