반응형
'for...of' 문
자바스크립트의 'for...in' 문은 객체의 열거 가능한 속성을 순회할 때 사용되는 반복문입니다. 이 문법은 배열이나 객체의 모든 열거 가능한 속성 이름을 순회합니다. 주의할 점은, 배열의 경우에는 인덱스(키)를 순회하게 됩니다.
구문
for (variable in object) {
// 실행할 코드
}
variable
은 순회 중에 각 속성 이름을 할당받는 변수입니다.object
는 순회할 객체입니다.
예제 1: 객체 순회
const person = {
name: 'John',
age: 30,
city: 'New York'
};
for (const key in person) {
console.log(key, person[key]);
}
위의 코드는 객체 person
의 모든 열거 가능한 속성을 순회하면서 속성 이름과 해당 값을 출력합니다.

예제 2: 배열 순회
const numbers = [1, 2, 3, 4, 5];
for (const index in numbers) {
console.log(index, numbers[index]);
}
이 예제에서는 배열 numbers
의 인덱스를 순회하면서 각 인덱스와 해당 값을 출력합니다. 하지만 배열을 순회할 때는 for...of
문을 사용하는 것이 더 일반적입니다. for...in
문은 배열의 인덱스를 순회하고, for...of
문은 배열의 값을 순회하기 때문입니다.
객체에서 상속된 속성의 순회
for...in
문은 객체의 상속된 열거 가능한 속성도 순회합니다. 예를 들어, 객체가 프로토타입 체인을 통해 상속된 속성을 가지고 있다면, 그 속성들도 함께 순회됩니다. 따라서 객체 자신의 속성만 순회하려면 hasOwnProperty
메서드를 사용해야 합니다.
const person = {
name: 'John',
age: 30
};
Object.prototype.city = 'New York';
for (const key in person) {
if (person.hasOwnProperty(key)) {
console.log(key, person[key]);
}
}
위의 코드는 객체 person
의 자신의 속성만 순회하면서 출력합니다. 상속된 속성인 city
는 출력되지 않습니다.
for...in
문과 for...of
문 비교
for...in
문과 for...of
문은 서로 다른 용도로 사용됩니다.
for...in
문: 객체의 열거 가능한 속성을 순회합니다.for...of
문: 반복 가능한 객체(iterable objects)의 값을 순회합니다.
for...in
사용 시 주의사항
- 배열 순회: 배열의 경우에는 인덱스를 순회하므로, 값 자체를 순회하려면
for...of
문을 사용하는 것이 좋습니다. - 열거 가능한 속성: 객체의 열거 가능한 속성을 순회하며, 프로토타입 체인에 있는 속성도 포함될 수 있습니다. 이를 피하려면
hasOwnProperty
메서드를 사용해야 합니다.
반응형
'도서로 공부하는 프로그래밍 > 코딩 자율학습' 카테고리의 다른 글
'맨발路' 지도 제작 플랫폼 기획 (33) | 2024.07.20 |
---|---|
자바스크립트에서 람다 함수 (34) | 2024.06.07 |
[NodeJS] 'for...of' 문과 'for...in' 문 (33) | 2024.05.30 |
[JS] 반복문의 비교, for...of와 for...in (36) | 2024.05.14 |
온라인으로 활용하는 마인드맵, 씽크와이즈 웹 버전 (29) | 2024.05.11 |