for in
let arr = ['张三', '李四', '王五']
for(let i in arr) {
console.log(i)
}
执行以上程序,打印处理的i是0,1,2,即数组的索引
for of
let arr = ['张三', '李四', '王五']
for(let i of arr) {
console.log(i)
}
执行以上程序,打印处理的i是张三,李四,王五,即数组的值
注意:必须要有迭代器接口(其实就是一个方法)才能使用for of 遍历,Array,Arguments,Set,Map,String,TypedArray,NodeList自动包含迭代器接口
[Symbol.iterator](){
}
总结
for in 中的变量i保存的是数组的索引,for of 中变量i保存的是数组的值