Skip to content

Instantly share code, notes, and snippets.

@shoveller
Created March 30, 2018 07:39
Show Gist options
  • Save shoveller/1bb6244b535f5490cb6ca64e755161b6 to your computer and use it in GitHub Desktop.
Save shoveller/1bb6244b535f5490cb6ca64e755161b6 to your computer and use it in GitHub Desktop.
제네레이터로 구현한 레인지 함수
function* range(start, end, step = 1) {
for (let value = start; (step > 0 ? value <= end : value >= end); value = value + step) {
yield value;
}
}
for (const val of range(0, 10, 3)) {
console.log(val); // 0 1 2
}
@shoveller
Copy link
Author

Iterable은 반복이 가능한 객체
Iterable한 객체는 Iterator를 가진다
for-of문으로 Iterable한 객체를 간단히 순회할 수 있다
Iterator와 Iterable은 커스텀 제작이 가능하다
Generator로 Iterable를 간략하게 표현할 수 있다
Generator은 Iterable 이며 Iterator 이다
yield로 다음 번 값을 반환할 수 있다.
yield*로 Iterable의 값을 차례대로 반환할 수 있다.
yield로 함수를 일시적으로 빠져나와도 컨텍스트는 보존된다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment