SyntaxError: missing : after property id
Message
SyntaxError: Expected ':' (Edge) SyntaxError: missing : after property id (Firefox)
Type d'erreur
Quel est le problème ?
Lorsqu'on crée un objet en utilisant un initialisateur d'objet, il faut utiliser un deux-points ( : ) afin de séparer les clés des valeurs pour les propriétés de l'objet.
var obj = { cleDeLaPropriete: "valeur" };
Exemples
Deux-points et signe égal
Le code qui suit provoquera une erreur car on utilise un signe égal (=) à la place du deux-points.
var obj = { cleDeLaPropriete = 'valeur' };
// SyntaxError: missing : after property id
Pour corriger ce problème, on peut utiliser un deux-points ou bien affecter la nouvelle propriété après avoir créé l'objet :
var obj = { cleDeLaPropriete: "valeur" };
// ou encore :
var obj = {};
obj["cleDeLaPropriete"] = "valeur";
Propriétés vides
On ne peut pas créer de propriétés vides de cette façon :
var obj = { cleDeLaPropriete; };
// SyntaxError: missing : after property id
Si vous souhaitez définir une propriété sans valeur, vous pouvez utiliser le mot-clé null
:
var obj = { cleDeLaPropriete: null };
Propriétés calculées
Si vous souhaitez créer une clé de propriété à partir d'une expression, il faudra utiliser des crochets pour encadrer l'expression (sinon le nom de la propriété ne pourra pas être calculé) :
var obj = { 'tr'+'uc': 'toto' };
// SyntaxError: missing : after property id
Pour corriger l'erreur, il faudra placer l'expression entre crochets :
var obj = { ["tr" + "uc"]: "toto" };