JS对象密钥序列
JS object key sequence
javascript是否保证即使为键分配了新值,也能保留对象的键序列?
例如,如果我有以下对象
var Object = {
keyX: value1,
keyB: value2,
keyZ: value3
}
如果我使用for .. in
迭代键,我会得到正确的序列,即keyX, keyB, keyZ
。如果我改变keyB
的值,我在迭代中仍然得到相同的序列。
我的问题是,序列会一直保持不变,还是在任何情况下都可能改变?
好吧,在文档(MDN)中说得很清楚:
A代表。。。in循环在任意顺序。
本节文档对此进行了更全面的解释:
尽管ECMAScript使对象的迭代顺序取决于实现,所有主要浏览器支持基于最早添加的属性的迭代顺序首先(至少对于不在原型上的属性)。然而,在在Internet Explorer的情况下,当对属性使用删除时混淆行为结果,阻止其他浏览器使用简单的对象像有序关联数组的对象文字。
在资源管理器中,虽然属性值确实设置为未定义,但如果稍后添加回具有相同名称的属性,该属性将在原来的位置迭代,而不是在迭代结束时删除属性和然后把它加回来。
相关文章:
- JS对象密钥序列
- Javascript对象中的跨浏览器密钥查找性能
- 使用firebase在用户注册对象上设置密钥
- 当我不知道密钥的名称时,如何读取 JSON 对象
- 使用给定的URL和密钥将JSON对象提取到jQuery ajax中
- 循环访问没有数组的 JSON 密钥对象
- 从Cryptico.js保存RSA密钥对象
- 访问 JSON 中的嵌套对象(密钥对/MYSQL 数组)
- 如何在 JavaScript 对象中获取这些密钥
- 如何获取JSON对象(javascript)中的所有密钥
- 从json(不在正确的密钥对中)创建javascript对象(带有密钥对)
- 使用d3或jquery的json对象中有多少不同的密钥对值
- 从要发送的对象中筛选出密钥
- 如何在使用console.log时隐藏对象上的一些密钥
- 查找密钥's数组中对象的值-Javascript
- 在嵌套json对象中查找和更新,而不更改不同子路径中的相同密钥对值
- 如何根据密钥名称的一部分对javascript对象属性进行分组
- 如何将密钥分配给对象Angularjs
- 如何使用chrome控制台在对象中找到特定的密钥
- 访问对象密钥时,如果没有'不存在