JavaScript ES6 문법 - 반복문 for in/of

박재휘·2024년 3월 4일

JavaScript

목록 보기
15/19
post-thumbnail

1. for in

Object에 있던 값을 출력할때 사용한다.

형태는 다음과 같다
for ( 변수생성 in 오브젝트 ) { 코드입력 }

아래 예시를 보자

var myObj = { name: "Kim", age: 20 };

for (var key in myObj) {
  console.log(myObj[key]); // Kim, 20
}

for (var key in myObj) {
  console.log(key); // 오브젝트의 키 name, age 차례로 출력
}

for (var key in myObj) {
  console.log(myObj); // myObj 오브젝트가 두번 출력 {...}, {...}
}

결과

  • for in 반복문은 오브젝트 내의 데이터 개수만큼 반복한다.

  • 변수 생성 자리에는 varkey라는 변수를 생성했다. 이 변수key는 오브젝트의 키 값이 된다.

특징

  1. enumerable인 것만 반복한다.
    오브젝트를 생성할때 몇가지 속성들이 자동으로 저장되는데 그 중 enumerable속성이 true인 것만 반복한다.
    ( enumerable뜻 = 셀 수 있는)

  2. 부모의 prototype도 반복한다.
    불필요하게 부모의 prototype까지 반복하는게 싫다면 방법이 있다.
    오브젝트에 붙이는 hasOwnProperty() 함수를 사용한다.

    class 부모 {
    
    }
    부모.prototype.name = 'Park';
    
    var 오브젝트 = new 부모();
    
    for (var key in 오브젝트) {
      if (오브젝트.hasOwnProperty(key)) {
        console.log(오브젝트[key]);
      }
    }

    오브젝트가 key값을 직접 가지고 있으면 true 없으면 false를 반환한다.
    if문에 넣어 사용하면 된다.


2. for of

iterable인 자료형에만 적용할 수 있다.
(String, Array, arguments, NodeList, Map, Set)

literable인 자료형은 [Symbol.iterator]()이라는 일종의 메소드를 가진 자료형들을 뜻한다.

var myArr = [1, 2, 3, 4, 5];

for (var a of myArr) {
  console.log(a); // 1, 2, 3, 4, 5
}

결과

profile
차곡차곡 열심히

0개의 댓글