for..in 和 for..of 区别

区别一

for..in 和 for..of 都可以循环数组;

for..in 输出的是数组的index下标;

而 for..of 输出的是数组的每一项的值;

const arr = [1, 2, 3, 4, 5];

// 使用 for..in 遍历 arr
for (const index in arr) {
  // 0, 1, 2, 3, 4
  console.log(index);
}

// 使用 for..of 遍历 arr
for (const value of arr) {
  // 1, 2, 3, 4, 5
  console.log(value);
}

区别二

for in 可以遍历对象;

for of 不能遍历对象,但是可以遍历内容为对象的数组;

只能遍历带有 iterator 接口的数据,例如 Set, Map, String, Array;

const obj = { name: '张三', age: 23 };
// 使用 for..in 遍历 obj
for (const key in obj) {
  // name, age
  console.log(key);
  // '张三', 23
  console.log(obj[key]);
}

// 使用 for..of 遍历 obj
for (const key of obj) {
  // 报错 Uncaught TypeError: object is not iterable
  console.log(key); 
}

const objArr = [{ name: '张三', age: 23 }, { name: '李四', age: 23 }]
// 使用 for..of 遍历 objArr
for (const item of objArr) {
  // { name: '张三', age: 23 }, { name: '李四', age: 23 }
  console.log(item); 
}

你可能感兴趣的:(前端,Vue,javascript,前端,vue.js)