값을 순회할 수 있는 데이터 구조를 말한다.

이터레이션 프로토콜

ECMAScript에서 정한 규칙으로 순회 가능한 데이터 구조들에게 적용된다.
ex) string, array, HTMLCollection, NodeList 등

크게 이터러블 프로토콜과 이터레이터 프로토콜로 나뉜다.

이터러블 프로토콜

  1. Symbol.iterator 메서드가 있어야 함
    (직접 구현하거나 프로토타입 체인으로 상속받거나)
  2. 메서드가 iterator를 반환해야 함

위 2가지를 만족해야 이터러블 프로토콜을 만족한다고 볼 수 있다.

참고로 string, array, HTMLCollection, NodeList 는 전부 Symbol.iterator를 상속받는다.

이터레이터 프로토콜

  1. next 메서드가 있어야 함
  2. value와 done 을 프로퍼티로 갖는 iterator result 객체를 반환함

위 2가지를 만족해야 이터레이터 프로토콜을 만족한다고 볼 수 있다.

이번에는 배열만 가지고 알아보자.

for...of문, spread, destructuring

이터레이션 프로토콜을 준수한 순회 가능한 데이터 구조는 위 3가지를 사용할 수 있다.
이번에도 배열만 가지고 알아보자.

  • for...of문

  • spread operator

  • destructuring assignment

사용 예시

알파벳 출력기를 만들어보자.

입력을 받을 수 있도록 바꿔보자.
그리고 자동으로 iterator를 리턴하도록 바꿔보자.

profile
Software Engineer

0개의 댓글