ES6에서 도입된 제너레이터(Generator) 함수는 이터러블을 생성하는 함수이다.
제너레이터 함수를 실행하면 제너레이터객체를 반환한다.
제너레이터객체는 이터러블이면 이터레이터이다. 이터러블은 [symbol.iterator] 을 소유 또는 상속 받은 객체
이터레이터는 [symbol.iterator] 의 실행 반환값으로 next() 메소드를 가지고 있는 것이다.
제너레이터는 위 두가지 모두 가능하다.
제너레이터 함수 선언 방법
function* aa () {
yield 1
}
// yield 뒤에 붙은 코드가 next메소드 호출 시 value프로퍼티의 값이 된다.