자바스크립트 기본 문법 – 반복문 – 3 – for…in문

자바스크립트 기본 문법 – 반복문 – 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문이 객체의 속성들을 순회하며 작업을 수행하는 것으로 이해할 수 있습니다.

주의해야 할 점:

  1. for…in문은 객체의 모든 열거 가능한 속성을 대상으로 반복합니다. 하지만 상속받은 속성이나 프로토타입 체인에 있는 속성들까지도 함께 반복하므로 주의해야 합니다. 반복하고자 하는 객체의 속성들만 대상으로 하기 위해서는 hasOwnProperty() 메서드를 사용하여 확인할 수 있습니다.

    for (let key in object) {
      if (object.hasOwnProperty(key)) {
        // 작업 수행
      }
    }
  2. for…in문은 객체의 속성들을 임의의 순서로 반복하기 때문에 순서에 의존하는 작업에는 사용되지 않습니다. 순서가 중요한 경우라면 다른 반복문을 사용하는 것이 좋습니다.

  3. 배열에 대해서는 일반적으로 for…in문을 사용하지 않습니다. 배열의 인덱스를 반복하고자 할 때는 for...of문이나 일반적인 for문을 사용해야 합니다.

  4. for…in문은 객체의 속성들을 순회하면서 작업을 수행하기 때문에 반복문 내에서 객체의 속성을 추가, 수정, 삭제하는 것은 권장되지 않습니다. 이러한 동작은 예상치 못한 결과를 초래할 수 있으므로 주의해야 합니다.

자바스크립트의 for…in문을 사용하면 객체의 속성들을 순회하면서 반복 작업을 수행할 수 있습니다. 객체의 속성들을 조회하거나 작업을 수행하는 용도로 유용하게 활용할 수 있습니다. 다만, 상속받은 속성이나 프로토타입 체인에 있는 속성들까지 반복하고 순서가 중요하지 않을 때 사용하는 것이 좋습니다. 순서에 의존하는 작업이 필요한 경우에는 다른 반복문을 선택하는 것이 좋습니다.

답글 남기기