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遍历的是数组的索引,对象的属性,以及原型链上的属性。

相关文章
|
5月前
|
安全 数据安全/隐私保护 网络架构
CAPWAP 和 LWAPP 的区别
【8月更文挑战第24天】
130 0
|
8月前
博饼中V2和V3有什么区别
博饼中V2和V3有什么区别
87 0
|
8月前
|
存储 前端开发 JavaScript
for...in、for...of、for...Each的详细区别!
for...in、for...of、for...Each的详细区别!
|
8月前
a++与++a的区别
a++与++a的区别。
50 4
|
8月前
|
SQL 安全 Java
myabtis中#{} 和 ${} 的区别是什么
myabtis中#{} 和 ${} 的区别是什么
|
8月前
|
Web App开发 安全 应用服务中间件
浅谈C/S vs. B/S的区别
浅谈C/S vs. B/S的区别
218 0
bis和bic区别与实现
bis和bic区别与实现
168 0
|
存储
逻辑移位与算术移位的区别
用一句简单的话来说就是:逻辑移位不需要考虑符号位,算术移位需要考虑符号位,我们都知道。数在计算机中都是以补码的形式来存储的,这才造成了逻辑移位和算术移位的的差别。
363 0
|
Java
While 与 do while 的区别
While 与 do while 的区别
84 0
c++ *和&的区别
c++ *和&的区别
347 0