
값을 순회할 수 있는 데이터 구조를 말한다.
ECMAScript에서 정한 규칙으로 순회 가능한 데이터 구조들에게 적용된다.
ex) string, array, HTMLCollection, NodeList 등
크게 이터러블 프로토콜과 이터레이터 프로토콜로 나뉜다.

Symbol.iterator 메서드가 있어야 함위 2가지를 만족해야 이터러블 프로토콜을 만족한다고 볼 수 있다.

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

next 메서드가 있어야 함value와 done 을 프로퍼티로 갖는 iterator result 객체를 반환함위 2가지를 만족해야 이터레이터 프로토콜을 만족한다고 볼 수 있다.
이번에는 배열만 가지고 알아보자.

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

spread operator

destructuring assignment

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

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