Fundamentals
Syntax & Primitive Types beginner Start with let and const — forget var exists. Learn the seven primitives (string, number, bigint, boolean, null, undefined, symbol) and why typeof null returns "object". Master template literals, destructuring assignment, and the difference between == and === — always use strict equality unless you have a specific reason not to.
Language JavaScript 8h Fundamentals
Functions & Closures beginner Understand function declarations, expressions, and arrow functions — and when "this" binding matters between them. Closures are not a trick question — they're how JavaScript actually works. A function remembers the variables from its creation scope. Master call, apply, bind, and rest parameters.
Language JavaScript 10h Fundamentals
Objects, Arrays & Iteration beginner Objects and arrays are everywhere in JavaScript. Master array methods — map, filter, reduce, find, some, every, flat, and flatMap replace most loops. Learn spread and rest operators for objects and arrays. Understand for...of vs for...in, the iterable protocol, and why Object.keys/values/entries exist.
Language JavaScript 10h Core
Prototypes & Classes intermediate Classes are syntactic sugar over prototypes — understanding the prototype chain is understanding JavaScript. Learn Object.create, __proto__ vs .prototype, and how property lookup walks the chain. ES6 classes give you clean syntax for constructors, inheritance with extends/super, static methods, private fields (#), and getters/setters.
Language JavaScript 10h JavaScript is single-threaded but non-blocking. Understand callbacks and why they lead to callback hell. Promises are the foundation — learn creation, chaining, and error propagation. async/await makes async code read like sync code. Master Promise.all, Promise.allSettled, Promise.race, and Promise.any for concurrent operations.
Language JavaScript 12h Core
Error Handling & Debugging intermediate Use try/catch/finally for synchronous errors. Understand Error types (TypeError, RangeError, SyntaxError, ReferenceError) and build custom error classes with useful messages and codes. In async code, unhandled rejections are silent bugs — always chain .catch() or use try/catch with await. Learn the browser DevTools console API beyond console.log.
Language JavaScript 6h Intermediate
Modules & Module Systems intermediate ES modules are the standard — learn import/export, named vs default exports, and dynamic import() for code splitting. Understand why CommonJS (require) still exists and when you'll encounter it. Know how "type":"module" works in package.json and how tree shaking eliminates dead code. Watch out for circular dependency gotchas.
Language JavaScript 8h Advanced
Advanced Patterns & Metaprogramming advanced Proxy and Reflect let you intercept and customize fundamental operations on objects — property access, assignment, function calls. Symbols create truly unique keys and power protocols like Symbol.iterator and Symbol.toPrimitive. WeakMap and WeakSet enable private data and cache patterns without memory leaks. Generators yield values lazily and can model complex control flow.
Language JavaScript 10h Advanced
Modern JavaScript (ES2020+) advanced Stay current with modern features that simplify real code. Optional chaining (?.) and nullish coalescing (??) eliminate verbose null checks. Logical assignment operators (||=, &&=, ??=) reduce boilerplate. structuredClone replaces JSON parse/stringify hacks. Array.at() enables negative indexing. Object.hasOwn() is the correct hasOwnProperty. Top-level await works in modules.
Language JavaScript 6h Production
Performance & Memory advanced Understand the event loop deeply — call stack, task queue, microtask queue, and how they interact. Know what causes memory leaks (detached DOM nodes, forgotten closures, uncleared event listeners, stale references). Use Map over Object for frequent additions/deletions, Set over Array for membership checks. Profile with the Performance API and browser DevTools.
Language JavaScript 10h