Enumeración de las llaves de objetos JavaScript repeticiones las teclas en el orden de inserción:¿Es aceptable el estilo para las bibliotecas de Node.js confiar en el orden de las claves de objeto?
> for (key in {'z':1,'a':1,'b'}) { console.log(key); }
z
a
b
Esto no es parte de la norma, pero se implementa ampliamente (como se discutió here):
ECMA- 262 no especifica el orden de enumeración. El estándar de facto es para que coincida orden de inserción, que V8 también hace, pero con una excepción:
V8 no da garantías en el orden de enumeración para los índices de matriz (es decir, un nombre de propiedad que puede ser analizada como un 32 -bit entero sin signo).
¿Es aceptable la práctica de confiar en este comportamiento al construir bibliotecas de Node.js?
normalmente trato de evitar confiar en un comportamiento particular cuando se trata de JS. – zzzzBov
No, no lo es. ¿Cuál es tu caso de uso? – georg
He visto este estilo en algunas bibliotecas de nodos, y quería verificar con la comunidad antes de haber molestado a los desarrolladores. El (nuevo) node.js Dynamo, biblioteca, por ejemplo, toma un argumento de esquema de dos claves donde el orden es importante. El primero especifica el "hash", y el segundo especifica el "rango". –