← All posts
postApril 5, 2026
Generator Functions — Lazy Sequences
#javascript#generators#iterators

javascript
function* counter(start = 0) {
while (true) {
yield start++;
}
}
const gen = counter(1);
gen.next().value; // 1
gen.next().value; // 2
gen.next().value; // 3
// Finite generator
function* range(a, b) {
for (let i = a; i <= b; i++) yield i;
}
[...range(1, 5)]; // [1, 2, 3, 4, 5]