for循环是在有js的时候就有了,forEach和map是es5的时候出来的,单纯从性能上说,map和forEach方法是远远落后for语句的。
for性能最好,其次是forEach,再者是map。
map方法和forEach方法类似,都是对数组进行循环,数组中每一个成员,都被其回调函数处理一次。区别在于map有返回值,而forEach没有返回值。
var arr = [1,2,3,4,5];
var r = arr.map( (v, i)=>{
return v*2;
} );
console.log(r); // [2,4,6,8,10]
如果在上文代码中,将map换为forEach,那么r的结果就是undefined,其他没区别,所以性能上map稍落后于forEach。
注:map,forEach不能使用break跳出整个循环,不能使用continue跳出本次循环。使用retrun相当于for中的continue的作用,从源码可以看出,结束本次循环的回调函数