for in 和 for of的区别

简介: for in 和 for of的区别

区别一:for in 和 for of 都可以循环数组,for in 输出的是数组的index下标,而for of 输出的是数组的每一项的值。


const arr = [1,2,3,4,5]
 
// for ... in
for (const key in arr){
    console.log(key) // 输出 0,1,2,3,4
    }
 
// for ... of
for (const key of arr){
    console.log(key) // 输出 1,2,3,4,5
    }


区别二:for in 可以遍历对象,for of 不能遍历对象,只能遍历带有iterator接口的,例如Set,Map,String,Array

 

const object = { name: 'lx', age: 23 }
    // for ... in
    for (const key in object) {
      console.log(key) // 输出 name,age
      console.log(object[key]) // 输出 lx,23
    }
 
    // for ... of
    for (const key of object) {
      console.log(key) // 报错 Uncaught TypeError: object is not iterable
    }


总结:for in适合遍历对象,for of适合遍历数组。for in遍历的是数组的索引,对象的属性,以及原型链上的属性。

相关文章
|
6月前
|
存储 C语言 C++
1. 认识C++和C的区别
1. 认识C++和C的区别
104 0
|
1月前
|
JavaScript 前端开发 索引
for in与for of的区别
for in与for of的区别
50 0
|
2月前
i++和++i的区别
i++和++i的区别
42 3
|
算法 Java Unix
C++基础语言之(二)C和C++的区别
C++基础语言之(二)C和C++的区别
for in 和 for of的区别
for in 和 for of的区别
174 1
|
存储
逻辑移位与算术移位的区别
用一句简单的话来说就是:逻辑移位不需要考虑符号位,算术移位需要考虑符号位,我们都知道。数在计算机中都是以补码的形式来存储的,这才造成了逻辑移位和算术移位的的差别。
319 0
|
Java
While 与 do while 的区别
While 与 do while 的区别
78 0
|
C语言
%C和%S区别
%C和%S区别
263 0
&和&&的区别
&和&&的区别
192 0