我知道ECMAScript不保证对象属性的排序,即使它们恰好在大多数实现中都是有序的。
E.g。我们无法保证像for (var k in obj) ...
这样的内容会按照k
的顺序迭代obj
的值。
由于对象的无序性质,我想知道以下代码段是否保证以预期的顺序运行?
var n = 1;
var obj = {
one: n++,
two: n++,
three: n++,
four: n++
// ...
};
ECMAScript是否保证obj
的属性具有预期值?或者由于对象属性可能出现意外排序,此代码是否可能以意外顺序执行?
规范的链接会很棒!