元素在“for”中的顺序(…)在…中)“环路Javascript循环中的“for…in”循环是否按照声明的顺序通过哈希表/元素?是否有一个不按顺序执行的浏览器?我希望使用的对象将被声明。一次永远不会被修改。假设我有:var myObject = { A: "Hello", B: "World" };我进一步将它们用于:for (var item in myObject) alert(item + " : " + myObject[item]);我能期待‘A:’你好‘总是出现在’B:‘世界’之前,在大多数体面的浏览器?
4 回答
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
当前,所有主要浏览器都按照定义对象的顺序遍历对象的属性。Chrome也能做到这一点,除了几个案例。[.]ECMAScript规范未显式地保留此行为。在ECMA-262,第12.6.4节:
列举这些特性的机制.。是依赖于实现的。
然而,规范与实现非常不同。ECMAScript的所有现代实现都按照定义对象属性的顺序迭代对象属性。因此,Chrome团队认为这是一个错误,并将修复它。
Object.keys
var obj = { "first":"first", "2":"2", "34":"34", "1":"1", "second":"second"};for (var i in obj) { console.log(i); };// Order listed:// "1"// "2"// "34"// "first"// "second"
largeQ
TA贡献2039条经验 获得超7个赞
for .. in
枚举属性的机制依赖于实现。枚举的顺序由对象定义。
它是一个无序的属性集合,每个属性都包含一个原始值、对象或函数。存储在对象属性中的函数称为方法。
添加回答
举报
0/150
提交
取消