for循环和forEach的区别:
1、forEach循环中中不允许使用同步函数,要使用同步函数需要使用for循环
[1, 2, 3].forEach((i) => {console.log(i)});console.log(4);
let log = function(data){return new Promise((resolve,reject) => resolve(data))};
[1, 2, 3].forEach(async (i) => {const res = await log(i);console.log(res)});console.log(4);
以上两种写法输出顺序不一致
2、forEach中不允许使用break结束整个循环,也不可以使用continue,return可以当作for循环中的continue使用
3、forEach由于生成了多个作用域,导致运行速度低于for循环,数据量少的情况相差无几
4、forEach的可读性强于for循环
结论:平时使用forEach,涉及到同步,性能问题时使用for循环