for of与 for in 的区别

146 阅读1分钟

for offor in 的区别

  1. for in 主要用于循环对象,也可以循环数组;for of 用于 循环数组
  2. for in 循环出的是 key ,for of 循环出的是 value
  3. for ofES6 新特性,修复了ES5 引入的 for in 的不足
  4. for of 想要循环普通对象 key,需要和 Object.keys() 搭配使用
  5. for of 想要循环普通对象 vaule,需要和 Object.values() 搭配使用
  6. 推荐循环对象用 for in ,循环数组用 for of
 <script>
        let arr = ['pink', 'blue', 'green']
        let obj = { username: 'Alice', age: 18 }
        for (let key in obj) {
            console.log(key)//依次打印 username age
            console.log(obj[key])//依次打印 Alice 18
        }
​
        for (let key in arr) {
            console.log(key)// 依次打印 0 1 2
            console.log(arr[key])// 依次打印 pink blue green
        }
​
        for (let value of arr) {
            console.log(value)//依次打印pink blue green
        }
​
        for (let iterator of obj) {
            console.log(iterator)//报错 obj is not iterable at ...
        }
​
        for (let iterator of Object.keys(obj)) {
            console.log(iterator)//依次打印username age
        }
​
        for (let iterator of Object.values(obj)) {
            console.log(iterator)//依次打印 Alice 18
        }
    </script>