enumerazione i tasti di oggetti JavaScript riproduzioni chiavi nell'ordine di inserimento:È accettabile lo stile per le librerie Node.js per fare affidamento sull'ordine delle chiavi dell'oggetto?
> for (key in {'z':1,'a':1,'b'}) { console.log(key); }
z
a
b
Questo non è parte dello standard, ma è ampiamente implementata (come discusso here):
ECMA 262 non specifica l'ordine di enumerazione. Lo standard è quello di abbinare ordine di inserimento, che V8 fa anche, ma con un'eccezione:
V8 dà alcuna garanzia sull'ordine di enumerazione per gli indici di matrice (cioè, una proprietà nome che può essere analizzato come un 32 -bit intero senza segno).
È pratica accettabile affidarsi a questo comportamento durante la costruzione di librerie Node.js?
in genere cerco di evitare di fare affidamento su un comportamento particolare quando si tratta di JS. – zzzzBov
No, non lo è. Qual è il tuo caso d'uso? – georg
Ho visto questo stile in alcune librerie di nodi, e ha voluto verificare con la comunità prima che infastidiva gli sviluppatori. Il (nuovo) node.js Dynamo, la libreria, ad esempio, utilizza un argomento schema di due chiavi in cui l'ordine è importante. Il primo specifica "hash" e il secondo specifica "range". –