7장 순회 프로토콜

이터레이터 제너레이터 값 흐름

이터러블은 순회 가능한 대상을 뜻하고, 이터레이터는 next() 호출마다 다음 값을 돌려주는 규칙을 따릅니다.

01

Iterable

Symbol.iterator 메서드를 가진 객체는 for...of로 순회할 수 있습니다.

02

Iterator

next()가 value와 done을 담은 결과 객체를 반환합니다.

03

Generator

function*과 yield로 중간에 멈췄다가 이어지는 함수를 만듭니다.

04

Delegate

yield*로 다른 이터러블의 값을 자연스럽게 넘겨줄 수 있습니다.

for...of

배열, 문자열, Map, Set처럼 이터러블 값을 순서대로 꺼냅니다.

사용자 정의

직접 Symbol.iterator를 구현하면 커스텀 객체도 순회할 수 있습니다.

지연 평가

필요한 순간에 다음 값만 계산해 큰 목록 처리 부담을 줄입니다.

DOM 탐색

트리 구조를 제너레이터로 순회하면 재귀 흐름을 읽기 쉽게 만들 수 있습니다.

이터레이터 제너레이터 값 판단 질문

이 데이터가 한 번에 배열로 필요하지 않고 순서대로 꺼내도 되는지 봅니다.

이터레이터 제너레이터 값 실수 방지

이터레이터는 next() 호출 상태를 기억하므로 재사용 시 위치를 확인합니다.

이터레이터 제너레이터 값 흐름

숫자 범위 생성기를 만들어 for...of와 next()로 각각 순회합니다.