for
for (initialization; condition; increment/decrement) {
}
- initialization (초기화): 반복문이 시작될 때 한 번만 실행되는 코드입니다. 일반적으로 반복 변수를 초기화하는 용도로 사용된다. (생략 가능)
- condition (조건): 각 반복마다 검사되는 조건입니다. 조건이 true이면 코드 블록이 실행되고, false이면 반복문이 종료된다.
- increment/decrement (증가/감소): 각 반복이 끝날 때마다 실행되는 코드이며 반복 변수를 증가시키거나 감소시키는 데 사용된다. (생략 가능)
forEach
배열.forEach(callbackFunction(currentValue [, index [, array]]) {
});
- callbackFunction: 각 배열 요소에 대해 실행할 콜백 함수이다. 이 함수는 세 가지 매개변수를 받을 수 있다.
- currentValue: 현재 처리 중인 배열 요소의 값
- index (옵션): 현재 요소의 인덱스
- array (옵션): forEach를 호출한 배열 자체
forEach 메서드는 주어진 배열의 각 요소에 대해 한 번씩 주어진 콜백 함수를 실행한다. 이 콜백 함수는 각 요소를 순서대로 처리하며, 배열을 변경하지 않고 각 요소에 대해 일관된 작업을 수행할 때 유용하다.
for, forEach 장단점
for 장점
- 반복의 시작점과 종료점을 명시적으로 설정할 수 있다.
- 반복을 더 세밀하게 제어할 수 있다. (예: 특정 조건에 따라 반복 중단 등)
for 단점
- 직접 시작접과 종료점을 설정해야하기 때문에 코드가 더 많이 필요하고 복잡할 수 있다.
- 코드를 읽고 이해하기가 어려울 수 있다.
- 반복 로직을 일일이 작성해야 하므로 실수할 가능성이 높을 수 있다.
forEach 장점
- 코드가 간결하고 읽기 쉽다.
- 반복의 세부 사항을 신경 쓸 필요가 없다.
- 콜백 함수를 사용하여 배열의 각 요소에 일괄적으로 작업을 수행할 수 있다.
forEach 단점
- 반복의 시작점과 종료점을 명시적으로 설정할 수 없다.
- break 문을 사용하여 반복을 중단할 수 없다. (* return 문을 사용하여 반복을 종료할 수 있지만, forEach 메서드 자체에서는 반복을 중단할 방법이 없다.)
어떤 것을 선택해야할까?
코드의 목적과 상황에 따라 for 루프와 forEach 메서드 중에서 적절한 것을 선택할 수 있다.
예를 들어, 반복을 세밀하게 제어해야 하는 경우 for 루프가 유용할 수 있고, 반복하는 작업이 단순하고 배열의 각 요소에 동일한 작업을 수행해야 할 때는 forEach 메서드가 더 편리할 수 있다.