javascript - JavaScript 和/或 JSON 是否需要解析器按定义顺序枚举属性?

标签 javascript json

给定一个对象定义:

var o = {x :1, y:2, z: 3, b: 4, a: 5, m: 6, X: 7};

在枚举时,Chrome 似乎遵守属性定义的顺序:

for (var i in o) { console.log(i, o[i]); }

产量:

x 1
y 2
z 3
b 4
a 5
m 6
X 7

JavaScript 和/或 JSON 指定这种级别的顺序保留吗?

无论哪种情况,它可靠吗?

最佳答案

不,Javascript 规范明确要求任何特定的枚举顺序,它们根据定义是无序的。

参见 12.6.4 of the ECMAScript specification 部分:

The mechanics and order of enumerating the properties ... is not specified.

关于javascript - JavaScript 和/或 JSON 是否需要解析器按定义顺序枚举属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16971248/

相关文章:

javascript - 使用 Google Maps API v3 创建热图图层时使用的坐标数量是否有限制?

javascript - 在 React Native Redux 中调度导入的函数

javascript - 如何在lodash中进行分组

javascript - 代码 : "ER_BAD_FIELD_ERROR", errno : 1054, sqlState : "42S22", 索引:0 MySQL/Angular/Sessions

json - 如何编写惯用的 Scala 包装类来表示非惯用的 JSON

javascript - Angular 翻译 HTML 标签

json - 延迟格式化的递归 JSON 类型无法作为隐式值找到

javascript - 清除ubuntu上的phantomjs缓存

json - 将多行中的 JSON 对象合并为单个对象

json - 如何在 DetailViewController 中获取 JSONData? swift