
참고 - 모던자바스크립트 19.14.1 for...in 문
일반적인 for 문과는 전혀 다른 형태의 반복이다. 객체의 모든 프로퍼티를 순회하며 열거 할 수 있도록 해준다.
여기서 '열거할 수 있는 프로퍼티'란 내부적으로 열거 enumerable 플래그가 true 로 설정된 프로퍼티를 의미한다.
for(변수선언문 in 객체) {
객체의 모든 열거할 수 있는 프로퍼티의 개수만큼 반복적으로 실행하고자 하는 실행문;
}
ex.
const person = {
name: 'Lee',
address: 'Seoul'
};
//for...in 문의 변수 prop 에 person 객체의 프로퍼티 키가 할당된다.
for(const key in person) {
console.log(key + ': ' + person[key]);
}
결과:
name : Lee
address: Seoul
for..in 문은 객체의 프로퍼티 개수만큼 순회하면 변수 선언문에서 선언한 변수에 프로퍼티 키를 할당한다.
예제의 경우 person 객체에는 2개의 프로퍼티가 있으므로 객체를 2번 순회하면서 프로퍼티 키를 key 변수에 할당한 후 코드 블록을 실행한다.
첫 번째 순회에서는 프로퍼티 키 name 을 key 변수에 할당한 후 코드 블록을 실행하고
부 번째 순회에서는 프로퍼티 키 address를 key 변수에 할당한 후 코드 블록을 실행한다.