자바스크립트에서 루프를 도는 방법에는 여러 가지가 있다. 각 루프는 특정한 상황에서 유용하며, 각각의 장단점이 있다. 여기서는 대표적인 루프 방법인 for
문, for...in
문, for...of
문, 그리고 forEach
메서드를 비교해 보겠다.
for
문가장 기본적인 루프 방법이다. 반복 횟수를 지정하거나 조건을 설정하여 반복할 수 있다.
for (let i = 0; i < array.length; i++) {
console.log(array[i]);
}
for...in
문객체의 열거 가능한 속성에 대해 반복한다. 배열에도 사용할 수 있지만 권장되지 않는다.
const object = { a: 1, b: 2, c: 3 };
for (let key in object) {
console.log(key, object[key]);
}
for...of
문반복 가능한(iterable) 객체(Array, Map, Set, String 등)의 요소에 대해 반복한다.
const array = [10, 20, 30];
for (let value of array) {
console.log(value);
}
forEach
메서드배열에서 사용 가능한 메서드로, 각 요소에 대해 함수를 실행한다.
const array = [10, 20, 30];
array.forEach(value => {
console.log(value);
});
break
나 continue
를 사용할 수 없다. 비동기 처리를 잘 지원하지 않는다.루프 방법 | 사용 대상 | 장점 | 단점 |
---|---|---|---|
for 문 | 모든 종류 | 유연성 있다, 초기화/조건/증감 자유 | 코드가 길어질 수 있다, 반복 횟수 명시적 관리 필요 |
for...in 문 | 객체(또는 배열) | 객체의 열거 가능한 모든 속성 반복 가능 | 배열에 사용 시 예기치 않은 동작 발생 가능 |
for...of 문 | 반복 가능한 객체 | 배열 및 다른 iterable의 요소 반복에 적합, 코드 간결 | 객체 속성 반복 불가 |
forEach 메서드 | 배열 | 간결하다, 함수형 프로그래밍 스타일 | break 나 continue 사용 불가, 비동기 처리 지원 미비 |
이 표를 통해 각 루프 방식의 사용 사례와 장단점을 이해하고, 상황에 맞는 적절한 루프를 선택할 수 있다.