1 如果单纯的是数组
var arr = ['zs','ls','lhx']
for(var item of arr){
console.log(item) // zs,ls,lhx
}
var arr = ['zs','ls','lhx']
for(var key in arr){
console.log(key) //0,1,2
}
总结:for of 是遍历的数组的值 。for in遍历的是数组的索引
2 如果是数组对象
var arr = [
{name:'zs',age:16},
{name:'ls',age:17},
{name:'lhx',age:18}
]
for(var item of arr){
console.log(item.name+ ':' +item.age) //zs:16,ls:17,lhx:18
}
3 如果是对象
var obj ={
0:'zs',
1:'ls',
2:'lhx'
}
for(var item of obj){
console.log(item) // 会报错
}
for(var key in obj){
console.log(key,obj[key]) // 0 zs
// 1 ls
// 2 lhx
}
总结: for of 不能遍历对象
4
var arr = ['zs','ls','lhx']
arr.name = 'hh'
for(var item of arr){
console.log(item) // zs,ls,lhx
}
console.log('-------------------------------------')
for(var item in arr){
console.log(item) // zs,ls,lhx,hh
}
总结:for in 会遍历自定义属性,for of不会
整体总结一下:for of用于数组,for in 还可以遍历对象而且可以遍历自定义属性,而且两者输出的值是不同的for of 是值,而for in是索引
本文详细介绍了JavaScript中for...of和for...in循环的区别和使用场景。for...of主要用于遍历数组的元素,而for...in则可以遍历数组的索引和对象的属性。在遍历数组时,for...of输出元素值,for...in输出索引;在遍历对象时,for...of不适用,for...in可以遍历包括自定义属性在内的所有属性。总结来说,for...of适用于数组元素遍历,for...in更适用于对象属性遍历。






