for...in和for...of
2020-06-30 本文已影响0人
w_小伍
for...in
适合遍历对象/数组对象
循环得到的是索引值,且是字符串类型的,普通for循环得到的索引值是数字类型的
let arr1 = ['xiao', 'xi', 'qq']
for (let index in arr1) {
console.log(index)
}

for...of
适合遍历数组
循环得到的是value
let arr1 = ['xiao', 'xi', 'qq']
for (let value of arr1) {
console.log(value)
}

总结
for…in
数组的键名是数字,但是for…in循环是以字符串作为键名“0”、“1”、“2”
for…in循环不仅遍历数字键名,还会遍历手动添加的其他键,甚至包括原型链上的键
某些情况下,for…in循环会以任意顺序遍历键名
for…in循环主要是为遍历对象而设计的,不适用于遍历数组
for…of
有着同for…in一样的简洁语法,但是没有for…in那些缺点
不同于forEach方法,它可以与break、continue和return配合使用
提供了遍历所有数据结构的统一操作接口