给定一个对象定义:
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.