共同之处是:

1、都是遍历数据每个元素;
2、回调的参数都相同都支持元素主键
3、其中回调函数中的this指向的是window对象;

不同的地方是:

map()会分配内存生成并返回新数组。
forEach()可以更改原数组元素值。

使用场景:

froEach()而只是想用数据做一些事情时,并调用回显之用。
map()适用于生成并生成新数组,原数组不变,它的性能要比forEach()要高。