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.

js
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.

js
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 :

js
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 :

js
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 :

js
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é) :

js
var obj = { 'tr'+'uc': 'toto' };
// SyntaxError: missing : after property id

Pour corriger l'erreur, il faudra placer l'expression entre crochets :

js
var obj = { ["tr" + "uc"]: "toto" };

Voir aussi