JS中for in和for of的区别

148 阅读1分钟

一. 前言

  • 在对数组或对象进行遍历时,我们经常会使用到两种方法: for infor of
  • 它们两者都可以用于遍历,不过for in遍历的是数组的索引或对象的属性名(index),而for of遍历的是数组值或元素字段(value

二. for in

1. for in循环对象

for in 用于循环对象时, key为对象中的每个属性名 使用 对象名[key]可以访问对象中对应的属性值

let obj = { name: "张三", age: 28 }
 for (const key in obj) {
     console.log(key);  // name age
     console.log(obj[key]); //张三 28
 }

2. for in循环数组

for in 用于循环数组时, key为数组中的每个下标 , 使用 数组名[key]可以访问数组中对应的值

let arr = [1, 5, 8, 9, 19, 85]
    for (const key in arr) {
        console.log(key);  // 0 1 2 3 4 5
        console.log(arr[key]); // 1 5 8 9 19 85
    }

三. for of

1. for of循环数组

for of 用于数组的循环时 , iterator是数组的每个值

let arr = [1, 5, 8, 9, 19, 85]
 for (const iterator of arr) {
     console.log(iterator);  //1 5 8 9 19 85
 }

2. for of循环字符串

for of 用于字符串的循环时 , iterator是字符串的每个字段

 let str = '这是一段文字'
   for (const iterator of str) {
       console.log(iterator); // 这 是 一 段 文 字
   }