For循环是按顺序的,for in 循环是不一定按顺序的。
用 for in 循环对象,循环出来的属性顺序并不可靠,所以不要在 for…in 中做依赖对象属性顺序的逻辑判断
for in 循环遍历的规律:
先遍历出(非负)整数属性(integer properties,按照升序),然后其他属性按照创建时候的顺序遍历出来。
let obj = {
"49": "Germany",
"41": "Switzerland",
"44": "Great Britain",
"1": "USA",
name:"ljy",
"-5":"jeu",
"type":"lily",
"2.34":"pai",
"-6":"dhoe"
};
for(let key in obj) {
console.log(key);
}
遍历输出结果为:
1
41
44
49
name
-5
type
2.34
-6
参考文章: