for in
和 for of
的区别
举例说明
const arr = [
{ name: 'peter', age: 28 },
{ name: 'tom', age: 30 }
]
const obj = { name: 'alice', age: 24 }
// for in 循环数组
for (let index in arr) {
console.log(index) // 这里打印的是数组的下标 0, 1
}
// for in 循环对象
for (let index in obj) {
console.log(index) // 打印的对象的键名:name, age
}
// for of 循环数组
for (let value of arr) {
console.log(value) // 打印的数组对应的值 {name: 'peter', age: 28}, {name: 'tom', age: 30}
}
// for of 循环对象
for (let value of obj) { // 不能循环对象,报错: obj is not a iterator
console.log(value)
}
总结
for in
可以循环数组和对象,得到是数组的下标或对象的键名for of
只能循环数组,得到的是数组对应的值