JavaScript Interview Question #128
What is lazy evaluation, and how can generators support it?
Generators, Browser Storage, Security & Advanced Runtime Concepts Senior Advanced
Quick Interview Answer
Lazy evaluation means values are produced only when they are requested rather than computing an entire result set in advance. Generators naturally support this because each yield can produce one value and pause until another value is requested.
Detailed Explanation
Lazy evaluation means values are produced only when they are requested rather than computing an entire result set in advance. Generators naturally support this because each yield can produce one value and pause until another value is requested.
Lazy sequences can reduce memory usage and avoid unnecessary computation when only part of a potentially large or even infinite sequence is consumed.
Code Example
function* evenNumbers() {
let value = 0;
while (true) {
yield value;
value += 2;
}
}
const values = evenNumbers();
console.log(values.next().value); // 0
console.log(values.next().value); // 2
console.log(values.next().value); // 4