234 votes

Quelle est la différence entre les clés d’objet avec des guillemets et sans guillemets ?

Y a-t-il une différence entre

et

J’ai remarqué que vous ne pouvez pas utiliser `` dans la clé lorsque vous n’utilisez pas les guillemets. Mais faut-il vraiment faire une différence ? Si oui, quel est-il ?

152voto

bdukes Points 54833

Non, les guillemets ne font pas une différence (à moins que, comme vous l’avez noté, vous souhaitez utiliser une clé qui n’est pas un identificateur valide de JavaScript).

Comme note latérale, le format d’échange de données JSON fait nécessitent des identificateurs entre guillemets doubles.

133voto

Mathias Bynens Points 41065

De sociétés non cotées noms de propriété / clés de l'objet en JavaScript, mon écriture-up sur le sujet:

Les devis ne peut être omis si le nom de la propriété est un littéral numérique ou un identificateur valide nom.

[...]

Support de la notation peut être utilisée sans danger pour tous les noms de propriété.

[...]

Point peut uniquement être utilisé lorsque le nom de la propriété est un identificateur valide nom.

Notez que les mots réservés sont autorisés à être utilisés comme non cotées noms de propriété dans l'ES5. Toutefois, pour assurer la compatibilité ascendante avec ES3, je vous suggère de les citer, de toute façon.

J'ai aussi fait un outil qui va vous dire si un nom de propriété peut être utilisée sans les guillemets et/ou avec la notation point. Essayez à mothereff.dans/js-propriétés.

Screenshot

8voto

Raynos Points 82706

Il n’y a aucune différence ici. Juste une question de style. Une des raisons pour ce faire est d’être capable d’utiliser « super » ou « classe » comme une clé, puisque ce sont des mots clés réservés.

D’aucuns pourraient être tentés de passer dans une chaîne avec un espace puis appelez o [« je peux avoir un espace »] mais je qualifierais cette mauvaise pratique.

4voto

01001111 Points 627

Non, pas de javascript. Toutefois, certains analyseurs JSON échoue lorsque les guillemets autour des touches ne sont pas présents.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X