for in 和 for of 都可以循环数组。
区别:
for in 输出的是数组的index下标,而for of 输出的是数组的每一项的值。
for in 可以遍历对象,for of 不能遍历对象,只能遍历带有iterator接口的,例如Set,Map,String,Array
总结:
for in适合遍历对象,for of适合遍历数组。for in遍历的是数组的索引,对象的属性,以及原型链上的属性。
for...in 和 for...of 都是 JavaScript 中的循环结构,但它们的作用略有不同:
for...in 循环用于枚举对象的属性名称,它会遍历对象的可枚举属性(包括继承来的属性),并将属性名称赋值给循环变量。例如:
let arr = [1, 2, 3]; for (let num of arr) { console.log(num); // 输出 1、2、3 }
另一个区别是,for...in 循环遍历的是对象属性的名称,而不是属性的值,因此循环变量的类型是字符串;而 for...of 循环则是遍历对象的属性值,循环变量的类型是对象属性所属的值的类型。 总之,for...in 适用于枚举对象属性,而 for...of 适用于遍历可迭代对象。