for
, forEach
, map
均可以用來循環。數組
for
, forEach
, map
這三個方法本質上是不一樣的。prototype
for
是循環的基礎語法,能夠有 for...in
, foo...of
,for(let i = 0; i < len; i++)
等。在for
循環中能夠使用 continue
, break
來控制循環。code
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()搭配;
map
因此循環對象屬性時,使用for...in,循環數組時用for...of。語法