자바스크립트 기본 문법 – 반복문 – 3 – for…in문
소제목: for…in문이란?
for…in문은 자바스크립트에서 객체의 속성을 순회하면서 반복적으로 작업을 수행하는 반복문입니다. 이 반복문은 주어진 객체의 모든 열거 가능한 속성을 차례대로 접근하여 작업을 수행합니다.
예시:
const person = {
name: '홍길동',
age: 30,
occupation: '개발자'
};
for (let key in person) {
console.log(key + ': ' + person[key]);
}
설명:
for…in문은 주어진 객체의 속성들을 반복적으로 순회하면서 작업을 수행합니다. 위의 예시에서는 person
객체의 속성들을 순회하면서 각 속성의 키와 값을 출력하고 있습니다.
먼저, for (let key in person)
과 같이 반복문을 선언합니다. key
는 반복문이 실행될 때마다 현재 속성의 키를 저장하는 변수입니다. 여기서 key
는 개발자가 임의로 지정한 변수 이름이며, 다른 이름으로 지정해도 상관 없습니다.
반복문의 중괄호 {}
내부에서는 각 속성의 키와 값을 이용하여 원하는 작업을 수행할 수 있습니다. 예시에서는 console.log(key + ': ' + person[key])
를 통해 각 속성의 키와 값을 출력하고 있습니다. person[key]
는 person
객체의 key
에 해당하는 속성의 값을 가져옵니다.
for…in문은 객체의 속성들을 임의의 순서로 반복하기 때문에 순서에 의존하는 작업에는 사용되지 않습니다. 주로 객체의 속성들을 조회하거나 작업을 수행하는 용도로 사용됩니다.
비유적인 표현:
for…in문은 마치 도서관에 있는 책장을 하나씩 열어가며 책들을 확인하는 것과 비슷합니다. 각 책장을 열 때마다 책의 제목과 내용을 확인하고 원하는 작업을 수행할 수 있습니다. 이렇게 책장을 열어가며 책들을 확인하는 과정을 for…in문이 객체의 속성들을 순회하며 작업을 수행하는 것으로 이해할 수 있습니다.
주의해야 할 점:
-
for…in문은 객체의 모든 열거 가능한 속성을 대상으로 반복합니다. 하지만 상속받은 속성이나 프로토타입 체인에 있는 속성들까지도 함께 반복하므로 주의해야 합니다. 반복하고자 하는 객체의 속성들만 대상으로 하기 위해서는
hasOwnProperty()
메서드를 사용하여 확인할 수 있습니다.for (let key in object) { if (object.hasOwnProperty(key)) { // 작업 수행 } }
-
for…in문은 객체의 속성들을 임의의 순서로 반복하기 때문에 순서에 의존하는 작업에는 사용되지 않습니다. 순서가 중요한 경우라면 다른 반복문을 사용하는 것이 좋습니다.
-
배열에 대해서는 일반적으로 for…in문을 사용하지 않습니다. 배열의 인덱스를 반복하고자 할 때는
for...of
문이나 일반적인for
문을 사용해야 합니다. -
for…in문은 객체의 속성들을 순회하면서 작업을 수행하기 때문에 반복문 내에서 객체의 속성을 추가, 수정, 삭제하는 것은 권장되지 않습니다. 이러한 동작은 예상치 못한 결과를 초래할 수 있으므로 주의해야 합니다.
자바스크립트의 for…in문을 사용하면 객체의 속성들을 순회하면서 반복 작업을 수행할 수 있습니다. 객체의 속성들을 조회하거나 작업을 수행하는 용도로 유용하게 활용할 수 있습니다. 다만, 상속받은 속성이나 프로토타입 체인에 있는 속성들까지 반복하고 순서가 중요하지 않을 때 사용하는 것이 좋습니다. 순서에 의존하는 작업이 필요한 경우에는 다른 반복문을 선택하는 것이 좋습니다.