11_generator
코드 블록의 Try it Yourself 버튼으로 직접 실행할 수 있다.
구문
1. 특징
반복가능한 이터레이터를 반환함 작업의 일시정지,재시작이 가능하며 스스로 상태관리를 함
2. syntax
function* 으로 시작하며 반드시 yield 를 포함한다
function* gen() {
yield 1; //포인트1
yield 2; //포인트2
yield 3; //포인트3
}
const iter = gen(); // gen()는 호출해도 바로실행되지 않고 이터레이터를 반환함
console.log(iter.next()); //{ value: 1, done: false }
console.log(iter.next()); //{ value: 2, done: false }
console.log(iter.next()); //{ value: 3, done: false }
console.log(iter.next()); //{ value: undefined, done: true }
제너레이터 함수의 yield(산출하다) 는 프로그램의 일시정지 포인트로 next 함수호출시 값을 반환후 정지함
2-1 yield 의 표현식
for (var v of iter) console.log(v)
3. m~n까지의 정수값을 순서대로 꺼내는 iterator 를 생성하는 generator
function* createNumbers(from, to) {
while (from <= to){ yield from++;}
}
let num=createNumbers(10,20)
for(n of num){console.log(n);}
4. 2차원 배열위의 랜덤찍기
…