问题:同上。谢谢
var obj = { "b1" : "a", "b2" : "b2", 7: "c", 4: 'dd'};
console.log(Object.keys(obj)); //输出["4", "7", "b1", "b2"]
                            
                                    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
根据 MDN 上的解释
Object.key 的顺序是根据
for...in决定的规范里说到
而且
Object 是个无序的集合
所以应该是各个浏览器实现
for...inObject 的结果吧这里也有一些讨论
http://stackoverflow.com/questions/280713/elements-order-in-a-for-in-loop
http://stackoverflow.com/questions/30076219/does-es6-introduce-a-well-defined-order-of-enumeration-for-object-properties
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/keys这里有
Object.keys的文档首先
Object.keys和for in顺序没任何区别答案很简单只有数字的部分会放到最前面然后排序 其他部分会放到后面 这只是js的处理机制,
根据一般的代码规范你这样使用本身就不合理~有些语言直接报错~
可以参看 这个书的介绍 http://exploringjs.com/es6/ch_oop-besides-classes.html#sec_iterating-property-keys
Object.keys()和for...in输出顺序一样输出顺序规则为: