A structured lesson workspace with readable content, hands-on examples, and a clean path to completion.
| Observation | Diagnostic question |
|---|---|
| Runtime value | What value actually arrived? |
| Language rule | Which rule determines the result? |
function makeCounter() {let count = 0;return () => ++count;}const next = makeCounter();console.log(next(), next());
This example demonstrates closures and practical use cases directly. Change one input at a time and observe the result; the goal is to connect the syntax to the runtime behavior rather than treating the snippet as a recipe.
This example demonstrates closures and practical use cases directly. Change one input at a time and observe the result; the goal is to connect the syntax to the runtime behavior rather than treating the snippet as a recipe.
Use this as a debugging lens. When behavior surprises you, reduce the case until you can state what value entered the operation, what rule applied, and what observable result came out.
Finish the lesson once you have worked through the material. This awards ★ 20 XP.