JS Iteration


Iteration의 사전적 의미는 반복으로 의미 그대로이나 일반적인 반복문 for, while 등의 반복과는 개념의 차이가 있다.

const list = [1, 2];

for (let value of list) {
  console.log(value);
}

const obj = list[Symbol.iterator]();
console.log(obj.next());
console.log(obj.next());
console.log(obj.next());

Iteration 프로토콜

Iteration를 하기 위해서는 프로토콜이 필요하며, 이는 구문 또는 빌트인이 아니다.

  • 오브젝트가 반복할 수 있는 구조
  • Iteration 함수를 가지고 있어야 함
  • Iteration Protocol 구분
    • Iterable Protocol
    • Iterator Protocol
  • 상기 Protocol를 맞춰 개발할 경우 Iteration 가능

빌트인 이터러블 오브젝트

기본값으로 이터러블 프로토콜을 가지고 있는 오브젝트(Symbol.iterator()를 지님)

Array, Argument, String, TypedArray, Map, Set, DOM NodeList

Iterator Object

  • Symbol.iterator();를 호출하면 반환되는 오브젝트
  • 이터레이터 오브젝트는 next()가 있어야 함
  • 해당 오브젝트를 이터레이터(Iterator)라고도 지칭함
  • 결과 값은 {value: any, done: boolean} 형태
    • value: 해당하는 순번의 값 - 끝났을 경우 undefined
    • done: 끝인지 아닌지 확인하는 값

Tags:

Categories:

Updated: