iterator 요청
for...of가 객체의 [Symbol.iterator]()를 호출한다.
protocol startiterable/iterator는 단순 반복 문법이 아니라 Symbol.iterator가 iterator를 돌려주고, iterator.next()가 { value, done }을 반환하는 명시적 프로토콜이다.
for...of가 객체의 [Symbol.iterator]()를 호출한다.
protocol start반복마다 iterator.next()를 호출해 value와 done을 읽는다.
{value, done}done이 false면 value를 루프 변수에 넣고 본문을 실행한다.
yielded valuedone이 true이거나 break가 발생하면 반복을 끝내고 return이 있으면 정리한다.
early close