Basics → Practice → Mock Review
Frontend Interview Prep Roadmaps
Structured roadmaps plus bite-sized lessons. Track progress locally, resume the next topic fast, and keep momentum without a login.
Overall Progress
0/97
Completed lessons across all roadmaps.
Recommended Path
JS Core → TS Core → React → HTML/CSS
Follow this sequence to build fundamentals first, then sharpen framework-specific answers.
Next Action
Start your first roadmap
Next lesson: JavaScript Event Loop: Microtasks vs Macrotasks (Interview-Ready)
JavaScript Core
Start hereClosures, hoisting, this, prototypes, promises, async/await, event loop — the stuff interviews love.
Checklist (25)
TypeScript Core
Types, generics, narrowing, inference, utility types — practical TypeScript for frontend roles.
Checklist (30)
React Core
Components, hooks, rendering, performance, patterns — the core React knowledge interviews expect.
Checklist (16)
HTML/CSS
Semantics, flexbox, grid, responsive design, accessibility, and modern CSS — core frontend fundamentals.
Checklist (10)
- Next up: HTML Semantics: The Interview Answer
Web Performance
Core Web Vitals, caching, images, fonts, long tasks, DevTools, and real-world debugging.
Checklist (16)
7-Day JavaScript Interview Revision Plan
One high-yield concept and daily practice task from our reviewed core lessons.
Event Loop & Task Queues
Concept: Call stack, microtasks (Promises, queueMicrotask), and macrotasks (setTimeout).
Daily Task: Trace execution order for nested microtasks vs macrotasks and explain stack draining.
Closures & Lexical Scope
Concept: Outer lexical environments, memory persistence, and private variables.
Daily Task: Write a counter factory with private state and explain why variables persist.
this, call, apply & bind
Concept: Implicit vs explicit binding, arrow functions, and method borrowing.
Daily Task: Solve 3 binding puzzles and explain why arrow functions ignore bind.
Hoisting & Temporal Dead Zone
Concept: Creation vs execution phase, var vs let/const, and TDZ mechanics.
Daily Task: Explain why accessing let before initialization throws a ReferenceError.
Promises Deep Dive
Concept: Promise states, chaining, rejection handling, and allSettled vs all.
Daily Task: Write a custom retry utility around a failing promise-based fetch call.
Async/Await & Concurrency
Concept: Sequential vs parallel execution and avoiding the waterfall trap.
Daily Task: Refactor a sequential loop into concurrent Promise.all execution.
Debounce vs Throttle
Concept: Rate-limiting events, timers, cancel tokens, and trailing edges.
Daily Task: Implement debounce and throttle from scratch with immediate execution flag.