for in
1循环遍历的值都是数据结构的键值,它可以循环数组也能循环对象.,
2.它遍历数元素的时候,还会遍历其他新增的属性,
3.在有些情况下,还会以随机顺序遍历数组
4.所以他最好用来遍历对象,
for of
1.可以避免for in循环中的陷阱
2.不同于forEach,它可以使用return,break,continue来终止循环
3.它不仅仅支持数组的遍历,同时也适用于很多类似数组的对象
4.还可遍历字符串
5.并不能处理原有的而原生对象
6.他不能遍历一个普通的对象,只有在对象中部署了 Symbol.iterator 属性, 才具有 iterator接 口可以使用 for of循环
7.如果不部署Symbol.iterator 属性,想遍历普通对象,需要联合Object.keys()来使用
forEach
1.他不能使用return,break,continue来终止循环,
2.在回调函数内不管传入任何形式 的参数,都会返回undifind
3.在回调函数内部有三个参数,item,index,arr分别代表,当前项,当前项的下标,数组本身.
4.它会对数组的每一个元素执行一次提供的函数,不改变原数组,没有返回值undifind
代码展示
let arr=[1,1,2,3,6,5,4] arr.forEach((item,index,arr)=>{ console.log(item) })