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是索引