for, forEach, map 都可以用来循环。
for, forEach, map 这三个方法本质上是不同的。
for 是循环的基础语法,可以有 for...in, foo...of,for(let i = 0; i < len; i++) 等。在for循环中可以使用 continue, break 来控制循环。
forEach 可以当做是for(let i = 0; i < len; i++)的简写,但是不能完成 i + n 这种循环,同时也不支持 continue和 break,只能通过 return 来控制循环。另外,使用forEach的话,是不能退出循环本身的,一般只用于 循环数组。
map的用法应该是循环当前可循环对象,并且返回新的可循环对象,跟for和forEach是不同的。
for...in和foo...of区别:
for...in循环出来的是key,而且会遍历prototype;
foo...of循环出来的是value,不能用于循环普通的对象,需要和Object.keys()搭配;
所以循环对象属性时,使用for...in,循环数组时用for...of。