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!