JavaScript Roadmap
JavaScript is the language of the web platform: it runs in every browser, and with Node.js it runs servers, desktops, and embedded devices. Its main use case is behavior: user events, network calls, state updates, and dynamic rendering, coordinated through a single-threaded event loop. Its depth is easy to underestimate: real expertise means the type system's sharp edges, the runtime's memory model, and true parallelism with workers and shared memory.
Status: Phases 1–2 (lessons 01–13) are fully written at the new standard:
every example runnable, with expected output, contraexamples, and diagrams. Phases 3–7 are
next; their pages still show outlines.
Scope: Study the topics in order. For every example, follow the study loop from
lesson 01: type it by hand, predict the output, run it, break it on purpose, then fix it.
Copy-paste teaches nothing.
JavaScript Study Progress:
| # | JavaScript | Topic | Description |
|---|---|---|---|
| PHASE 1: LANGUAGE FUNDAMENTALS | |||
| 01 | Running JavaScript: Your First Program | The browser console, your first file with Node, reading errors, and the study loop for everything that follows. | |
| 02 | JavaScript in HTML | The <script> element, defer vs async vs module, and wiring code to the page with events. |
|
| 03 | Syntax, Values and Statements | Tokens, literals, statements versus expressions, automatic semicolon insertion, and strict mode. | |
| 04 | Variables, Scope and Types | const and let, the temporal dead zone, block scope, and primitives versus references. |
|
| 05 | Operators, Coercion and Numbers | Equality, truthiness, nullish coalescing, optional chaining, and IEEE-754 number pitfalls. | |
| 06 | Strings, Templates and Text | String methods, template literals, Unicode code points versus code units, and Intl. |
|
| 07 | Control Flow and Logic | Branching, every loop form, for…of versus for…in, labeled breaks, and guard clauses. |
|
| 08 | Functions, Parameters and Closures | Declarations, arrows, default/rest/spread parameters, closures, and pure functions. | |
| PHASE 2: THE OBJECT MODEL | |||
| 09 | Objects, Properties and Prototypes | Property descriptors, getters and setters, the prototype chain, and immutability. | |
| 10 | Arrays, Iteration and Transformation | Mutating versus non-mutating methods, map/filter/reduce, sort traps, and TypedArrays. |
|
| 11 | Map, Set and Weak Collections | Map versus object keys, Set deduplication, weak collections, and the iteration protocol. |
|
| 12 | Classes, Inheritance and Private Fields | Constructors, extends and super, static members, private fields, and this binding. |
|
| 13 | Modules and Code Organization | ESM import/export, dynamic import(), the module pattern, and circular dependencies. |
|
| PHASE 3: RUNTIME, ERRORS AND THE PLATFORM | |||
| 14 | Errors, Failure Modes and Defensive Code | Throwing and catching, custom Error subclasses, and validation that fails loudly. |
|
| 15 | The Runtime: Engine, Stack and Memory | Parsing to JIT, the call stack, the heap and garbage collection, and hidden classes. | |
| 16 | DOM, Events and Rendering | Selecting elements, event delegation, forms, reflow versus repaint, and accessibility. | |
| 17 | Storage, Network and Platform APIs | fetch with AbortController, storage tiers, URL and History, and Web Components. |
|
| 18 | Running and Debugging JavaScript | DevTools panels, breakpoints, watch expressions, source maps, and performance profiling. | |
| PHASE 4: CONCURRENCY AND PARALLELISM | |||
| 19 | The Event Loop and the Concurrency Model | One thread, task and microtask queues, render steps, and keeping the main thread free. | |
| 20 | Callbacks, Promises and async/await | Promise states, chaining, error propagation, the four combinators, and async/await. |
|
| 21 | Iterators, Generators and Async Iteration | The iterator protocol, yield and yield*, lazy pipelines, and for await…of. |
|
| 22 | Web Workers and Shared Memory | Dedicated workers, transferables, SharedArrayBuffer, Atomics, and true parallelism. |
|
| 23 | Performance and Scheduling Patterns | Debounce and throttle, batching, scheduler APIs, and measuring with the performance API. |
|
| PHASE 5: ARCHITECTURE, QUALITY AND PITFALLS | |||
| 24 | Patterns and Architecture in Vanilla JS | Module pattern, pub/sub, observable stores, and rendering from state. | |
| 25 | Testing and Quality | node:test, assertions, mocking, coverage, linting, and the TDD loop without a framework. |
|
| 26 | JavaScript Pitfalls and Contraexamples | A catalog of wrong code and right code: coercion, this, loops, numbers, and mutation. |
|
| PHASE 6: PRACTICE AND DEMO | |||
| 27 | Lab Examples | Numbered, commented demos grouped by phase; view the code or preview in the browser. | |
| 28 | Study Projects | Guided builds that combine chapters: a worker pool, a hash-router SPA, and more. | |
| PHASE 7: REFERENCE | |||
| 29 | References | Official documentation, the ECMAScript spec, proposals, compatibility data, and playgrounds. | |
JavaScript - Prep Quiz
This quiz works well on mobile and desktop. It includes multiple-choice and multi-select questions and requires Google sign-in.
When you complete this roadmap you should be able to read, write, and debug modern JavaScript, reason about the event loop, and use workers for real parallelism — without a framework. Continue with the Node.js, TypeScript, React, Vue, or Svelte roadmaps next.
Free References
For the full categorized table — specifications, guides, playgrounds, and tools — see the References page.
- MDN JavaScript — the day-to-day language and standard-library reference (free)
- The Modern JavaScript Tutorial — a structured second pass after this track (free)
- ECMA-262 — the ECMAScript language specification as written (free)
- TC39 proposals — what is coming into the language next (free)
- Can I Use — browser compatibility data for platform features (free)