js forof 与 fonin 遍历区别点在哪里?
for循环:无论在实战开发中,还是面试中,都是高频率出现的,也是核心知识点之一
两者公共点:
1. 都支持 break、conitnue
1. 都遍历不到 Sybmol属性
在对象情况下
遍历对比:
1. for in:完整遍历,所有的Key值,包括原型上属性;
2. for of:遍历报错s not iterable只能遍历带有iterable接口的对象,例如:map、set、augments、nodeList、classList
在数组情况下
遍历对比:
1. for in:遍历的数组下标索引
2. for of:遍历数组每一项内容
特殊场景
- 结合Object方式
- 如果想遍历没有iterable结构的对象,又想实现for of 循环怎么呢?可以用
Object
提供的API
去实现:- Object.values()
- Object.keys()
- Object.entries()
总结
for in
更适合遍历对象for of
更适合遍历数组