Thinking / Frontend Engineering Wiki

Knowledge you can explain and apply.

Connected explanations for frontend engineers who want to understand the mechanism, articulate the trade-offs, and carry the reasoning into their work.

10chapters available
224answers available
12tracks in the curriculum

A growing system.
Availability is shown at each entry point.

01 / One topic, four modes

Go deeper.
Then make it useful.

Start with closures: an available chapter connects lexical scope to mutation, callbacks, and memory. Handbooks and Q&A are ready to explore; the reference and practice modes are still growing.

01 / LearnAvailable

Build the mental model.

A closure retains access to its lexical environment. Follow what is captured, what can change, and what stays reachable.

Read the closures chapter
02 / ExplainAvailable

Make the reasoning clear.

Move from a short answer to the deeper reasoning behind scope, callbacks, and shared bindings.

Explore JavaScript Q&A
03 / RecallRoadmap

Keep distinctions close.

The planned reference mode brings comparisons, APIs, and debugging checklists into a compact format.

View the reference roadmap
04 / PracticeRoadmap

Test the understanding.

The planned practice mode covers output prediction, debugging, coding, and architecture prompts.

View the practice roadmap
Try the mental model / example prompt

Two calls. One shared binding.

What does each call return? Explain why the value changes even though makeCounter has finished.

function makeCounter() {
  let count = 0;
  return () => ++count;
}
const next = makeCounter();
next(); // ?
next(); // ?
Reveal the reasoning

The calls return 1 and 2. Both use the same captured count binding. Returning from makeCounter does not remove that binding while next still retains access to it.

02 / Find your entry point

Follow the question.
Choose a path.

All 12 curriculum tracks are shown here. Start with available JavaScript material, explore expanding subjects, or inspect the phased roadmap for what comes next.

Start with one concept.
Follow the connections.

Start with JavaScript