반복, 순회 기능을 사용하는 주체간의 통일된 규격
공통 기능들: for ... of, 스프레드 문법, 배열 디스트럭쳐링
배열, 문자열, Set, Map, arguments 등...
키 Symbol.iterator ( well-known 심볼 ) 의 값으로 이터레이터를 반환하는 메서드를 가짐

next 메서드를 통해 이터러블을 순회하며 값을 반환

이터레이터 프로토콜 iterator protocol
next 메서드의 반환 객체 내 요소
value - 해당 차례에 반환할 값
done - 순회 종료 여부 ( 마지막 값 반환 다음 차례부터 )

함수 내 코드들을 모두 실행하지 않고 외부 호출자에게 제어권을 양도 - "계속할까요?"
이터러블과 이터레이터를 보다 간결하게 구현 가능
function 다음 또는 메서드명 앞에 * - 띄어쓰기 위치 무관

제너레이터 함수의 결과값으로 반환
이터레이터이자 이터러블


next 메서드를 실행하면 다음 yield까지 실행 후 중지
yield의 값을 value로 반환
끝까지 실행 후 done: true
모르겠다 모르겠어 의심하게 된다..