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é.
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 :
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 :
console.log("Coucou " . "monde");
// SyntaxError: missing name after . operator
À la place, on écrira :
console.log("Coucou " + "monde");