我可以在b
之前依赖以下代码提醒a
吗?
var x = {}
x['b'] = 1
x['a'] = 0
for(var i in x) {
alert(i)
}
答案 0 :(得分:7)
是否有任何主流浏览器不保留JavaScript对象中的插入顺序?
至少有一个主流浏览器直到最近(我认为V8引擎没有保留顺序)。
我可以依赖以下代码警告b吗?
没有。规范说没有订单。
答案 1 :(得分:4)
对于Google Chrome中使用的V8 JavaScript引擎,进行了类似的讨论:
http://code.google.com/p/v8/issues/detail?id=164
最好不要依赖未记录的功能。你使用数字作为键,肯定会出错。
例如,在某些浏览器中会出现这种情况:
var x = {}
x['b'] = 1
x['2'] = 20
x['a'] = 0
x['1'] = 10
for(var i in x) {
alert(x[i])
}
BTW它是alert(x[i])
。