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

相关文章
|
2月前
|
JavaScript 前端开发 索引
for in与for of的区别
for in与for of的区别
66 0
|
7月前
MTP3 和 MTP3B 的区别
【4月更文挑战第11天】
79 0
MTP3 和 MTP3B 的区别
|
算法 Java Unix
C++基础语言之(二)C和C++的区别
C++基础语言之(二)C和C++的区别
|
7月前
a++与++a的区别
a++与++a的区别。
41 4
|
7月前
|
Web App开发 安全 应用服务中间件
浅谈C/S vs. B/S的区别
浅谈C/S vs. B/S的区别
201 0
|
Java
While 与 do while 的区别
While 与 do while 的区别
78 0
setBackgroundImage 和 setImage的区别
setBackgroundImage 和 setImage的区别
214 0
&和&&的区别
&和&&的区别
194 0
|
编解码 网络性能优化 存储
VBR与CBR的区别是什么?
<pre id="best-content-153760330" class="best-text mb-10">VBR是动态<a target="_blank" class="inner-link decor-none" href="http://zhidao.baidu.com/search?word=%E7%A0%81%E7%8E%87&amp;fr=qb_search_exp&am
10840 1