- map和forEach的区别?
 forEach(): 针对每一个元素执行提供的函数(executes a provided function once for each array element)。
 map(): 创建一个新的数组,其中每一个元素由调用数组中的每一个元素执行提供的函数得来(creates a new array with the results of calling a provided function on every element in the calling array)。
 区别:
 forEach()返回值是undefined,不可以链式调用;map()返回新的数组,可以链式调用(arr.map(item=>item*2).filter(item=>item>5))
 没有办法终止或者跳出forEach()循环,除非抛出异常,所以想执行一个数组是否满足什么条件,返回布尔值,可以用一般的for循环实现,或者用Array.every()或者Array.some();
- 自己实现map函数 - 1 
 2
 3
 4
 5
 6
 7- function myMap(fn){ 
 var newArr = [];
 for(let i=0;i<this.length;i++){
 newArr.push(fn(this[i],i,this))
 }
 return newArr;
 }
- 函数防抖与函数截流 
- 延伸:自定义实现数组中的方法 - 1 
 2
 3
 4
 5
 6- //实现forEach 
 function myForEach(fn){
 for(let i=0;i<this.length;i++){
 fn(this[i],i,this)
 }
 }