Node.js库依赖于对象键序是否可接受的样式?

枚举javascript对象的键将按照插入顺序重放键:

> for (key in {'z':1,'a':1,'b'}) { console.log(key); } z a b 

这不是标准的一部分,但被广泛实施(如这里所讨论的):

ECMA-262不指定枚举顺序。 事实上的标准是匹配插入顺序,这也是V8,但有一个例外:

V8不保证数组索引的枚举顺序(即,可以parsing为32位无符号整数的属性名称)。

构buildNode.js库时,是否可以接受这种行为?

绝对不! 这不是一个风格问题,而是一个正确的问题

如果你依赖这个“事实上的”标准,你的代码可能会在ECMA-262 5th Ed上失败。 因为该规范没有指定枚举顺序。 而且,V8引擎可能会在未来改变它的行为,比如性能的利益

绝对不要依赖于按键的顺序。 如果标准没有指定一个订单,那么实现可以自由地按照自己的意愿去做。 哈希表通常是这些对象的基础,而且你无法知道什么时候可以使用。 JavaScript有很多的实现,他们都争相成为最快的。 按键顺序在不同实现之间会有所不同,如果不是现在,那么将来也是如此

不可以。依赖于ECMAScript标准,否则你必须和开发人员讨论是否存在像事件标准一样的人。