for...in과 for...of 반복문(루프) 비교

MicaelKnife·2024년 8월 8일

JavaScript

목록 보기
1/19
post-thumbnail

JavaScript의 for...in과 for...of: 언제 어떤 루프를 사용해야 할까?

JavaScript 개발을 하다 보면 종종 이런 고민에 빠지곤 합니다: "이 상황에서 for...in을 써야 할까, for...of를 써야 할까?" 🤔

두 루프는 비슷해 보이지만, 사용 목적과 결과는 매우 다릅니다. 잘못 사용하면 예상치 못한 버그를 만날 수 있죠.

이 포스트에서는:

  • for...infor...of의 핵심 차이점
  • 각 루프의 적절한 사용 시나리오
  • 실제 개발에서 흔히 저지르는 실수와 해결 방법

을 다룹니다.

주니어 개발자부터 시니어 개발자까지, JavaScript로 개발하는 모든 분들에게 유용한 내용이 될 거예요.

코드 예제와 함께 자세히 알아보고, 여러분의 코드를 더 효율적이고 가독성 높게 만들어 보세요!

읽으신 후 여러분의 경험이나 추가 팁이 있다면 댓글로 공유해 주세요. 함께 배우고 성장하는 공간을 만들어 갑시다! 💻✨

JavaScript의 for...in과 for...of 루프 비교

JavaScript에서 객체나 배열을 순회할 때 자주 사용되는 두 가지 루프 구문이 있습니다: for...infor...of. 이 두 구문은 비슷해 보이지만 사용 목적과 동작 방식에 중요한 차이가 있습니다. 이 글에서는 각 루프의 특징과 차이점, 그리고 언제 어떤 루프를 사용해야 하는지 알아보겠습니다.

for...in 루프

for...in 루프는 객체의 열거 가능한 속성들을 순회하는 데 사용됩니다.

특징:

  • 객체의 속성(키)을 반복합니다.
  • 프로토타입 체인의 속성도 포함할 수 있습니다.
  • 주로 객체의 속성을 검사하거나 조작할 때 사용됩니다.

예제:

let person = {
    name: "Alice",
    age: 30,
    job: "Engineer"
};

for (let key in person) {
    console.log(key + ": " + person[key]);
}

// 출력:
// name: Alice
// age: 30
// job: Engineer

for...of 루프

for...of 루프는 반복 가능한(iterable) 객체의 값을 순회하는 데 사용됩니다.

특징:

  • 배열, 문자열, Map, Set 등 이터러블 객체에 사용됩니다.
  • 실제 값을 직접 반환합니다.
  • 프로토타입 체인의 속성을 포함하지 않습니다.

예제:

let colors = ["red", "green", "blue"];

for (let color of colors) {
    console.log(color);
}

// 출력:
// red
// green
// blue

주요 차이점

  1. 사용 대상

    • for...in: 객체의 속성 순회
    • for...of: 이터러블 객체의 값 순회
  2. 반환 값

    • for...in: 속성의 이름(키)
    • for...of: 실제 값
  3. 프로토타입 체인

    • for...in: 프로토타입 체인의 속성 포함 가능
    • for...of: 프로토타입 체인의 속성 미포함
  4. 성능

    • 일반적으로 for...offor...in보다 더 빠름
  5. 배열에서의 사용

    • for...of가 배열 순회에 더 적합
    • for...in은 배열에 사용 시 인덱스를 문자열로 반환하여 예상치 못한 결과 발생 가능

언제 어떤 루프를 사용해야 할까?

  • 객체의 속성을 순회할 때: for...in 사용
  • 배열이나 다른 이터러블의 값을 순회할 때: for...of 사용
  • 객체의 키와 값이 모두 필요할 때: Object.entries()for...of 조합 사용
let person = { name: "Bob", age: 25 };
for (let [key, value] of Object.entries(person)) {
    console.log(`${key}: ${value}`);
}

결론

for...infor...of는 각각 고유한 용도와 장단점을 가지고 있습니다. 객체의 속성을 다룰 때는 for...in을, 배열이나 다른 이터러블의 값을 다룰 때는 for...of를 사용하는 것이 좋습니다. 각 상황에 맞는 적절한 루프를 선택함으로써 더 효율적이고 가독성 높은 코드를 작성할 수 있습니다.

profile
천천히, 페이스 유지하는 개발자

0개의 댓글