SyntaxError: missing ; before statement

Message

SyntaxError: missing ; before statement

Type d'erreur

SyntaxError.

Quel est le problème ?

Un point-virgule est absent quelque part. En JavaScript, les instructions doivent se terminer par des points-virgules. Certaines de ces instructions sont traitées par l'insertion automatique de point-virgule (ASI pour Automatic Semicolon Insertion), mais pour le code qui provoque l'erreur, un point-virgule est nécessaire afin que le moteur JavaScript puisse analyser le code source correctement.

La plupart du temps, cette erreur est la conséquence d'une autre erreur : ne pas « fermer » les chaînes de caractères correctement ou utiliser var de façon incorrecte. Il peut également y avoir trop de parenthèses à un endroit. Lorsque cette erreur apparaît, faites attention à la syntaxe du code environnant.

Exemples

Les chaînes laissées ouvertes

Cette erreur est parfois simplement provoquée par une chaîne dont les quotes ne sont pas échappées correctement ou qui ne sont pas correctement délimitées. Le moteur JavaScript s'attend donc à trouver la fin de la chaîne. Par exemple :

var toto = 'Ouvrir l'œil';
// SyntaxError: missing ; before statement

Pour éviter cela, on pourra utiliser des doubles quotes ou échapper l'apostrophe :

var toto = "Ouvrir l'œil";
var toto = 'Ouvrir l\'œil';

Déclarer des propriétés avec var

On ne peut pas déclarer de propriétés sur un objet ou un tableau avec une déclaration var.

var obj = {};
var obj.toto = "coucou"; // SyntaxError missing ; before statement

var array = [];
var array[0] = "monde"; // SyntaxError missing ; before statement

Pour éviter cela, on n'utilisera pas le mot-clé var qui est inutile dans ces cas :

var obj = {};
obj.toto = "coucou";

var array = [];
array[0] = "monde";

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight
 Dernière mise à jour par : SphinxKnight,