SyntaxError: missing name after . operator

Message

SyntaxError: missing name after . operator

Type d'erreur

Quel est le problème ?

L'opérateur . (le point) est utilisé pour accéder aux propriétés d'un objet. Il est nécessaire d'indiquer le nom de la propriété à laquelle on souhaite accéder. Pour les propriétés dont le nom est calculé, il est préférable d'utiliser les crochets pour encadrer le nom. Cela permet de calculer une expression dont le résultat sera le nom de la propriété recherchée. Peut-être cherchiez-vous à utiliser l'opérateur de concaténation ? C'est l'opérateur + qu'il faut utiliser dans ce cas. Pour plus de détails, voir les exemples ci-après.

Exemples

Accéder à une propriété

Pour accéder à une propriété en JavaScript, on utilise le point (.) ou les crochets ([]) mais pas une combinaison des deux. Les crochets sont notamment utiles lorsqu'on souhaite accéder à des propriétés dont le nom est calculé.

js
var obj = { toto: { truc: "bidule", machin2: "bidule2" } };
var i = 2;

obj.[toto].[truc]
// SyntaxError: missing name after . operator

obj.toto."machin"+i;
// SyntaxError: missing name after . operator

Pour corriger ce fragment de code, on pourra accéder aux propriétés de la façon suivante :

js
obj.toto.truc; // "bidule"
// ou autrement
obj["toto"]["truc"]; // "bidule"

// pour les propriétés dont le
// nom est calculé, il faut les
// crochets
obj.toto["machin" + i]; // "bidule2"

Accéder à une propriété ou concaténer ?

Si vous avez l'habitude de développer en utilisant un autre langage de programmation tel que PHP, il est possible de mélanger certains opérateurs et d'utiliser le point comme opérateur de concaténation, qui est l'opérateur + en JavaScript :

js
console.log("Coucou " . "monde");

// SyntaxError: missing name after . operator

À la place, on écrira :

js
console.log("Coucou " + "monde");

Voir aussi