JavaScript Mastery Path
A staged JavaScript mastery path for frontend engineers — language core, async, DOM, patterns — with checkpoints and interview links.
- roadmaps
- javascript-mastery
JavaScript mastery means you can predict runtime behavior and implement small correct tools under time. This path is language-first; frameworks come after.
Interview companion: JavaScript interview · JS coding patterns.
Stage 1 — Values, scope, functions
Goals: Mental model of execution contexts.
- Scope,
let/const/var, TDZ - Arrow functions
- Default parameters
- Destructuring
- Call, apply, bind
- Closures
Checkpoint: Explain a classic loop+closure bug; fix it three ways.
Stage 2 — Objects, prototypes, classes
- Prototypal lookup
- Classes in JavaScript
- Deep vs shallow copy
- Property descriptors intuition (optional depth)
Checkpoint: Implement inheritance both with class and explain the prototype link.
Stage 3 — Arrays & iteration
Checkpoint: Rewrite nested loops as clear reduce/groupBy without cleverness debt.
Stage 4 — Async mastery
- Event loop
- Promises
- async/await error handling
- AbortController
- Fetch fundamentals
- Async iteration
- Debounce
Checkpoint: fetchWithRetry + abort; explain microtasks vs timeouts.
Stage 5 — Modules & architecture of code
Checkpoint: Small library with public API + tree-shakeable exports.
Stage 6 — DOM & events (FE-critical)
- Creating/updating DOM nodes
- querySelector traversal
- Event delegation
- Capture/bubble/once/passive
- Custom events
- classList & dataset
- DocumentFragment
- Dimensions: client/offset/scroll
Checkpoint: Infinite list or tabs in vanilla JS with delegation.
Stage 7 — Browser data & files
Checkpoint: Client-side CSV download + correct revokeObjectURL.
Stage 8 — Performance & memory awareness
- Garbage collection mental model
- Feature detection vs UA
- Long tasks awareness — Long tasks
- Complexity analysis
Checkpoint: Profile a leaky listener demo; fix cleanup.
Stage 9 — Interview & DSA transfer
- Pattern drills: JS coding patterns
- Core DSA via JS: /dsa
- TypeScript path next for production safety
Suggested projects
- Vanilla SPA todos with modules
- Event emitter + middleware
- Fetch layer with cache + abort
- Mini query library (
$lite)
Weekly practice loop
- Read one concept until you can teach it in 90 seconds
- Implement a tiny demo without looking at docs
- Break it — empty inputs, rapid clicks, abort mid-flight
- Compare to MDN / engine behavior when surprised
| Focus week | Drill set |
|---|---|
| Scope & closures | Counter factory, loop trap, module privacy |
| this / prototypes | Method borrow, class vs proto chain |
| Async | Mixed log order, Promise.all fail modes |
| DOM | Delegation table, passive scroll listener |
| Utilities | Debounce, throttle, deep equal, flatten |
Pair with timed problems from JS coding patterns once stages 1–4 feel automatic.
How you know a stage is done
- You can write the core demo offline
- You can name one footgun and one production use
- You can answer a related interview prompt without freezing
- You are not still googling the same basics weekly
Reading alone is not done. Blank-file recall is done.
What to skip early
- Every TC39 proposal
- Framework hopping before async/DOM solid
- Obscure bit-twiddling unless interviewing for it — Bitwise flags is optional
- Premature observable/stream frameworks
- Building a full bundler to “learn modules”
Related on this site
Further reading
- javascript.info
- MDN JavaScript guide
- ECMA-262 (when you need ground truth)
Mastery is prediction + implementation. If you cannot rewrite a utility from a blank file, keep drilling that stage.