[JS]for과 forEach의 차이

for과 forEach는 둘 다 반복문입니다. 같은 작업을 반복 수행하는 데 사용되는 문법입니다.

 

for문

for문은 가장 기본적인 반복문으로 초기화, 조건식, 반복 후 실행할 코드를 정의하여 반복 작업을 수행합니다.

- 초기화: 반복문이 시작하기 전에 단 한 번 실행되는 코드입니다. 주로 반복 변수를 초기화하는 용도로 사용됩니다.

- 조건식: 반복이 계속되기 위해 평가되는 조건을 지정합니다. 조건식이 `true`인 동안 반복이 계속됩니다.

- 반복 후 실행할 코드: 각 반복이 끝난 후에 실행되는 코드로, 주로 반복 변수를 갱신하는 용도로 사용됩니다.

for(초기화; 조건식; 반복 후 실행할 코드){
//반복적으로 실행될 코드
}

예시
for (let i = 0; i < 3; i++) {
    console.log(i); 
    // 0, 1, 2 가 차례로 출력됨
}

forEach메서드

forEach 메서드는 배열의 각 요소에 대해 지정된 함수를 한 번씩 실행하는 배열 메서드입니다. 배열의 모든 요소를 순회하면서 해당 작업을 수행합니다.

array.forEach(function(currentValue, index, array) {
    // currentValue: 현재 순회 중인 요소의 값
    // index: 현재 순회 중인 요소의 인덱스
    // array: 순회되는 배열 자체
    // 실행될 코드
});

예시:
const array = [1, 2, 3, 4, 5];
array.forEach(function(element, index) {
    console.log(`Index: ${index}, Value: ${element}`);
});

// 출력:
// Index: 0, Value: 1
// Index: 1, Value: 2
// Index: 2, Value: 3
// Index: 3, Value: 4
// Index: 4, Value: 5

for문과 forEach의 차이점

1. for 문은 모든 종류의 반복 작업에 사용할 수 있으며, 배열뿐만 아니라 객체 등의 자료구조를 순회하는 데에도 사용될 수 있습니다. forEach 메서드는 배열에서만 사용 가능합니다.

 

2. for 문은 반복을 제어하기 위해 초기화, 조건식, 반복 후 실행할 코드를 사용하여 직접 제어할 수 있습니다. 반면 forEach 메서드는 내부적으로 반복을 처리하므로 개발자가 반복 흐름을 직접 제어할 수 없습니다.

 

3. for 문은 break를 사용하여 반복을 중지할 수 있습니다. forEach 메서드는 중간에 반복을 멈출 수 있는 방법이 없습니다. (return을 사용하면 해당 콜백만 종료되고, 반복은 계속됩니다)

 

따라서, 배열을 순회하며 간단한 작업을 수행할 때는 forEach 메서드를 사용하는 것이 편리하고 가독성이 좋습니다. 반면, 더 복잡한 반복 작업이나 다른 자료구조를 다룰 때for 문이 더 적합할 수 있습니다.

 

선택은 작업의 성격과 개발자의 취향에 따라 결정하면 됩니다.