Перечисление ключей объектов javascript повторяет ключи в порядке вставки:
> for (key in {'z':1,'a':1,'b'}) { console.log(key); }
z
a
b
Это не является частью стандарта, но широко используется (как обсуждалось здесь):
ECMA-262 не определяет порядок перечисления. Стандарт де-факто должен соответствовать порядок вставки, который также выполняет V8, но за одним исключением:
V8 не дает гарантий по порядку перечисления для индексов массива (т.е. свойство имя, которое может быть проанализировано как 32-разрядное целое без знака).
Является ли приемлемой практикой полагаться на это поведение при построении библиотек Node.js?