js - 반복문 비교

정윤호·2024년 7월 15일
1

코드잇잇잇!

목록 보기
30/30

자바스크립트에서 루프를 도는 방법에는 여러 가지가 있다. 각 루프는 특정한 상황에서 유용하며, 각각의 장단점이 있다. 여기서는 대표적인 루프 방법인 for 문, for...in 문, for...of 문, 그리고 forEach 메서드를 비교해 보겠다.

1. for

가장 기본적인 루프 방법이다. 반복 횟수를 지정하거나 조건을 설정하여 반복할 수 있다.

for (let i = 0; i < array.length; i++) {
  console.log(array[i]);
}
  • 장점: 초기화, 조건, 증감 부분을 자유롭게 설정할 수 있어 유연하다.
  • 단점: 코드가 길어질 수 있으며, 반복 횟수를 명시적으로 관리해야 한다.

2. for...in

객체의 열거 가능한 속성에 대해 반복한다. 배열에도 사용할 수 있지만 권장되지 않는다.

const object = { a: 1, b: 2, c: 3 };
for (let key in object) {
  console.log(key, object[key]);
}
  • 장점: 객체의 모든 열거 가능한 속성을 반복할 때 유용하다.
  • 단점: 배열에도 사용할 수 있지만, 배열의 인덱스를 문자열로 처리하므로 예기치 않은 동작을 할 수 있다.

3. for...of

반복 가능한(iterable) 객체(Array, Map, Set, String 등)의 요소에 대해 반복한다.

const array = [10, 20, 30];
for (let value of array) {
  console.log(value);
}
  • 장점: 배열 및 다른 반복 가능한 객체의 요소를 반복하는 데 적합하다. 코드가 간결하다.
  • 단점: 객체의 속성을 반복할 수 없다.

4. forEach 메서드

배열에서 사용 가능한 메서드로, 각 요소에 대해 함수를 실행한다.

const array = [10, 20, 30];
array.forEach(value => {
  console.log(value);
});
  • 장점: 간결하고 가독성이 좋다. 배열의 각 요소에 대해 함수형 프로그래밍 스타일로 작업할 수 있다.
  • 단점: breakcontinue를 사용할 수 없다. 비동기 처리를 잘 지원하지 않는다.

비교 요약

루프 방법사용 대상장점단점
for모든 종류유연성 있다, 초기화/조건/증감 자유코드가 길어질 수 있다, 반복 횟수 명시적 관리 필요
for...in객체(또는 배열)객체의 열거 가능한 모든 속성 반복 가능배열에 사용 시 예기치 않은 동작 발생 가능
for...of반복 가능한 객체배열 및 다른 iterable의 요소 반복에 적합, 코드 간결객체 속성 반복 불가
forEach 메서드배열간결하다, 함수형 프로그래밍 스타일breakcontinue 사용 불가, 비동기 처리 지원 미비

이 표를 통해 각 루프 방식의 사용 사례와 장단점을 이해하고, 상황에 맞는 적절한 루프를 선택할 수 있다.

profile
우리 인생 화이팅~

0개의 댓글