是否有任何主流浏览器不保留JavaScript对象中的插入顺序

Are there any major browsers that do not preserve insertion order in a JavaScript Object?

本文关键字:对象 插入 顺序 JavaScript 保留 任何主 浏览器 是否      更新时间:2023-09-26

我可以依赖以下代码在a之前提醒b吗?

var x = {}
x['b'] = 1
x['a'] = 0
for(var i in x) {
    alert(i)
}

有没有一些主要的浏览器不保留JavaScript对象中的插入顺序?

直到最近,至少有一个主流浏览器做到了(我认为V8引擎没有保持秩序)。

我可以依靠以下代码在a之前提醒b吗?

没有。说明书上说没有订单。

对于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])
}

顺便说一句,是alert(x[i])