Maison >interface Web >js tutoriel >Les virgules finales dans les tableaux et objets JavaScript sont-elles officiellement prises en charge par la spécification ?

Les virgules finales dans les tableaux et objets JavaScript sont-elles officiellement prises en charge par la spécification ?

DDD
DDDoriginal
2024-10-28 20:18:30715parcourir

Are Trailing Commas in JavaScript Arrays and Objects Officially Supported by the Specification?

Commes de fin dans les tableaux et objets JavaScript : une plongée dans les spécifications

L'utilisation par JavaScript de virgules de fin dans les tableaux et les objets a soulevé des questions sur sa spécification conformité. Cet article approfondit les spécifications pour clarifier la question.

Spécification ES5 pour les tableaux

Selon la section 11.1.4 de la spécification ECMAScript 5 (ES5), les littéraux de tableau peut inclure une virgule de fin en plus des délimiteurs d'éléments réguliers :

<code class="javascript">[ Elisionopt ]
[ ElementList ]
[ ElementList , Elision_opt ]</code>

où Elision_opt représente une série facultative de virgules de fin.

Cela signifie qu'un littéral de tableau tel que [1, 2, , ,,] est parfaitement valide dans ES5, créant un tableau avec deux éléments mais définissant la longueur du tableau à 5.

Spécification ES5 pour les objets

De même, section 11.1. 5 de la spécification ES5 définit les littéraux d'objet comme suit :

<code class="javascript">ObjectLiteral :
    { }
    { PropertyNameAndValueList }
    { PropertyNameAndValueList , }</code>

L'inclusion de { PropertyNameAndValueList , } autorise également explicitement les virgules de fin dans les littéraux d'objet.

Évolution historique dans ES3

Fait intéressant, les virgules de fin ne faisaient pas partie de la spécification ECMAScript 3 (ES3) pour les littéraux d'objet. Cependant, ils étaient déjà autorisés pour les littéraux de tableau dans ES3, comme défini dans la section 11.1.4.

Compatibilité des navigateurs

Alors que la spécification ES5 dicte que les virgules de fin sont standard , tous les navigateurs ne les prenaient pas en charge sans bizarreries dans les versions antérieures. Par exemple, Internet Explorer 8 (IE8) ne prenait pas en charge les virgules de fin jusqu'à IE9.

Conclusion

Il ressort clairement de la spécification ECMAScript 5 que les virgules de fin dans les tableaux JavaScript et les objets font bel et bien partie du standard. Cette flexibilité de syntaxe permet un code plus propre et plus concis lors de la définition de structures de données complexes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn