`for in` 和 `for of` 的区别

96 阅读1分钟

for infor 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只能循环数组,得到的是数组对应的值