直接区别:
for in遍历的是数组的索引(即键名),而for of遍历的是数组元素值。(for…of是ES6新引入的特性)
定义一个数组
let arr = ['a','b','c'];
//先使用for in 循环:
for(let index in arr ){
console.log(`${arr[index]}`); //a,b,c
}
// 在使用for of 循环
for(var value of arr){
console.log(value); //a,b,c
}
在这里我们并没有看出有任何区别.
接下来在数组中添加一个 name 属性。
arr.name= 'javascript';
在使用 for…in 和 for…of 循环遍历
for(let index in arr){
console.log(`${arr[index]}`); //a,b,c,'javascript'
}
for(var value of arr){
console.log(value);//a,b,c
}
// for…of不能循环出自定义的属性
所以for in更适合遍历对象,不要使用for in遍历数组。