JavaScript 개발을 하다 보면 종종 이런 고민에 빠지곤 합니다: "이 상황에서 for...in을 써야 할까, for...of를 써야 할까?" 🤔
두 루프는 비슷해 보이지만, 사용 목적과 결과는 매우 다릅니다. 잘못 사용하면 예상치 못한 버그를 만날 수 있죠.
이 포스트에서는:
for...in과 for...of의 핵심 차이점을 다룹니다.
주니어 개발자부터 시니어 개발자까지, JavaScript로 개발하는 모든 분들에게 유용한 내용이 될 거예요.
코드 예제와 함께 자세히 알아보고, 여러분의 코드를 더 효율적이고 가독성 높게 만들어 보세요!
읽으신 후 여러분의 경험이나 추가 팁이 있다면 댓글로 공유해 주세요. 함께 배우고 성장하는 공간을 만들어 갑시다! 💻✨
JavaScript에서 객체나 배열을 순회할 때 자주 사용되는 두 가지 루프 구문이 있습니다: for...in과 for...of. 이 두 구문은 비슷해 보이지만 사용 목적과 동작 방식에 중요한 차이가 있습니다. 이 글에서는 각 루프의 특징과 차이점, 그리고 언제 어떤 루프를 사용해야 하는지 알아보겠습니다.
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 루프는 반복 가능한(iterable) 객체의 값을 순회하는 데 사용됩니다.
let colors = ["red", "green", "blue"];
for (let color of colors) {
console.log(color);
}
// 출력:
// red
// green
// blue
사용 대상
for...in: 객체의 속성 순회for...of: 이터러블 객체의 값 순회반환 값
for...in: 속성의 이름(키)for...of: 실제 값프로토타입 체인
for...in: 프로토타입 체인의 속성 포함 가능for...of: 프로토타입 체인의 속성 미포함성능
for...of가 for...in보다 더 빠름배열에서의 사용
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...in과 for...of는 각각 고유한 용도와 장단점을 가지고 있습니다. 객체의 속성을 다룰 때는 for...in을, 배열이나 다른 이터러블의 값을 다룰 때는 for...of를 사용하는 것이 좋습니다. 각 상황에 맞는 적절한 루프를 선택함으로써 더 효율적이고 가독성 높은 코드를 작성할 수 있습니다.