for of
- 반복 가능한 객체(iteration protocol을 준수하는 객체)에 적용가능
for in
- ES6에 추가된 새로운 컬렉션 전용 반복 구문.
- 객체의 Enumerable properties들을 순회한다. (non symbol 속성 only)
- 순회 순서가 보장되지 않는다.
- 배열에서는 사용을 지양 - (prototype chain까지 포함가능한 문제 발생)
- symbol로 키가 지정된 속성을 무시한다.
그럼 for in은 언제 사용해야 하나?
-> 객체의 속성을 쉽게 확인할때, 디버깅을 할때
forEach
arr.forEach(callback(currentvalue[, index[, array]])[, thisArg])
- Array.prototype의 메서드
- 아무 값도 반환하지 않음
- 원본배열에 콜백을 실행하므로 원본배열 수정 가능
map
arr.map(callback(currentValue[, index[, array]])[, thisArg])
- Array.prototype의 메서드
- 새로울 배열을 만들어 각 요소를 새 요소에 매핑시킴.
- 원본 배열을 유지하면서 새로운 결과를 원한다면 map이 적합.