completefrontend
THE JAVASCRIPT FIELD GUIDE

JavaScript

The complete path through the language that runs the web: from why JavaScript exists and your first line of code, through closures, the event loop, and the DOM, down to how engines parse, compile, optimize, and garbage-collect your code, and how the specification defines it all. Each lesson pairs a short explanation with code you can step through.

343 of 343 lessons available59 modules12 stagesBeginner to expert
Start hereLesson 1.1

Why JavaScript?

What JavaScript is, what you can build with it, and why every browser runs it.

Welcome to JavaScript10 min + experiments

// What you’ll learn

  • The language of the web
  • Front end, back end, mobile & desktop
  • What makes it approachable
  • JavaScript is not Java
0%completed
0 of 343 lessons
day streak
0
days this week
0
stages done
0/12

Recommended for you Based on your progress

The learning path

343 of 343 available

12 stages, in order. Each one builds on the last, from absolute beginner to engine and specification internals. Jump to a stage, or search for any topic.

  1. STAGE 1 · BEGINNERGetting started3 modules · 14 lessons
  2. STAGE 2 · BEGINNERLanguage fundamentals4 modules · 24 lessons
  3. STAGE 3 · BEGINNER TO INTERMEDIATEWorking with data5 modules · 28 lessons
  4. STAGE 4 · INTERMEDIATEHow JavaScript works4 modules · 19 lessons
  5. STAGE 5 · INTERMEDIATEObjects, prototypes & classes4 modules · 19 lessons
  6. STAGE 6 · INTERMEDIATEAsynchronous JavaScript3 modules · 14 lessons
  7. STAGE 7 · INTERMEDIATEJavaScript in the browser7 modules · 43 lessons
  8. STAGE 8 · ADVANCEDAdvanced language features6 modules · 34 lessons
  9. STAGE 9 · ADVANCEDProfessional JavaScript6 modules · 35 lessons
  10. STAGE 10 · EXPERTInside the engine8 modules · 54 lessons
  11. STAGE 11 · EXPERTThe runtime & the platform5 modules · 31 lessons
  12. STAGE 12 · EXPERTThe specification & the language4 modules · 28 lessons

343 lessons in 12 stages and 59 modules.

Stage 1 Beginner

Getting started

Why JavaScript exists, where it runs, and how to write, run, and debug your first programs.

3 modules · 14 lessons

  1. 4 lessons · 46 min

    Module 1: Welcome to JavaScript

    What the language is, why it matters, and how it became the language of the web.

    1. 1.1Why JavaScript? (has a video)10 min
    2. 1.2A short history of JavaScript12 min
    3. 1.3Engines, runtimes & hosts12 min
    4. 1.4Manuals & specifications12 min
  2. 5 lessons · 1 h 2 min

    Module 2: Your first programs

    Set up your tools, run code, and learn the structure every program shares.

    1. 2.1Setting up your tools (has a video)12 min
    2. 2.2Hello, world! (has a video)12 min
    3. 2.3Statements, comments & semicolons (has a video)14 min
    4. 2.4Strict mode (has a video)12 min
    5. 2.5Talking to the user12 min
  3. 5 lessons · 1 h 2 min

    Module 3: Debugging & code quality

    Find bugs quickly and write code other people can read.

    1. 3.1Reading error messages13 min
    2. 3.2Debugging in the browser13 min
    3. 3.3Coding style & naming12 min
    4. 3.4Linting with ESLint12 min
    5. 3.5Thinking like a developer12 min

Stage 2 Beginner

Language fundamentals

Values, operators, decisions, loops, and functions: the building blocks of every program.

4 modules · 24 lessons

  1. 10 lessons · 2 h 7 min

    Module 4: Variables & values

    Store values, name them well, and meet the eight types JavaScript has.

    1. 4.1Variables: let, const & var (has a video)12 min
    2. 4.2Data types (has a video)12 min
    3. 4.3Numbers & math (has a video)13 min
    4. 4.4Strings (has a video)14 min
    5. 4.5Booleans & truthiness (has a video)14 min
    6. 4.6undefined (has a video)14 min
    7. 4.7null13 min
    8. 4.8Booleans, null & undefined11 min
    9. 4.9BigInt12 min
    10. 4.10Type conversion12 min
  2. 5 lessons · 1 h 2 min

    Module 5: Operators & expressions

    Compute, compare, and combine values.

    1. 5.1Arithmetic & assignment12 min
    2. 5.2Comparisons12 min
    3. 5.3Logical operators12 min
    4. 5.4Nullish coalescing & optional chaining12 min
    5. 5.5The rest of the operators14 min
  3. 4 lessons · 50 min

    Module 6: Control flow

    Make decisions and repeat work.

    1. 6.1if, else & conditions13 min
    2. 6.2The switch statement12 min
    3. 6.3Loops: while & for13 min
    4. 6.4for…of & for…in12 min
  4. 5 lessons · 1 h 3 min

    Module 7: Functions

    Package code into reusable pieces that take input and return output.

    1. 7.1Declaring & calling functions13 min
    2. 7.2Default & rest parameters12 min
    3. 7.3Function expressions & callbacks12 min
    4. 7.4Arrow functions12 min
    5. 7.5Recursion14 min

Stage 3 Beginner to intermediate

Working with data

Objects, arrays, strings, collections, and dates: model real data and transform it.

5 modules · 28 lessons

  1. 7 lessons · 1 h 22 min

    Module 8: Objects

    Group related data and behavior under one name.

    1. 8.1Object basics13 min
    2. 8.2Objects & references12 min
    3. 8.3Methods & this12 min
    4. 8.4Constructors & new12 min
    5. 8.5Object.keys, values & entries11 min
    6. 8.6Symbols11 min
    7. 8.7Object to primitive conversion11 min
  2. 6 lessons · 1 h 14 min

    Module 9: Arrays

    Ordered lists and the methods that search, transform, and sort them.

    1. 9.1Array basics12 min
    2. 9.2Slicing, splicing & joining12 min
    3. 9.3Searching arrays12 min
    4. 9.4map, filter & reduce14 min
    5. 9.5Sorting & copying safely12 min
    6. 9.6Iterating arrays & array-likes12 min
  3. 4 lessons · 48 min

    Module 10: Strings & text

    Search, slice, format, and truly understand text.

    1. 10.1String methods12 min
    2. 10.2Template literals & tagged templates12 min
    3. 10.3Unicode & string internals13 min
    4. 10.4Comparing & sorting text11 min
  4. 7 lessons · 1 h 23 min

    Module 11: Destructuring & collections

    Unpack values, and pick the right structure for your data.

    1. 11.1Destructuring12 min
    2. 11.2Spread & rest11 min
    3. 11.3Map & Set12 min
    4. 11.4Set operations11 min
    5. 11.5WeakMap & WeakSet12 min
    6. 11.6JSON13 min
    7. 11.7Choosing a data structure12 min
  5. 4 lessons · 52 min

    Module 12: Dates, numbers & Intl

    Work with time, format numbers, and speak the user's language.

    1. 12.1Date & time13 min
    2. 12.2Temporal13 min
    3. 12.3Number & Math in depth13 min
    4. 12.4Internationalization with Intl13 min

Stage 4 Intermediate

How JavaScript works

Execution contexts, scope, closures, this, and coercion: the rules behind the code you already write.

4 modules · 19 lessons

  1. 5 lessons · 1 h

    Module 13: Execution & the call stack

    What happens when JavaScript runs your file, one execution context at a time.

    1. 13.1The JavaScript runtime at a glance12 min
    2. 13.2Execution contexts12 min
    3. 13.3The call stack12 min
    4. 13.4Hoisting & the temporal dead zone12 min
    5. 13.5Memory: primitives vs objects12 min
  2. 5 lessons · 1 h 1 min

    Module 14: Scope & closures

    Which code can see which variables, and functions that remember.

    1. 14.1Scope & lexical environments12 min
    2. 14.2Closures12 min
    3. 14.3Closure patterns13 min
    4. 14.4Closures in loops, timers & memory12 min
    5. 14.5The old var & the global object12 min
  3. 5 lessons · 1 h 2 min

    Module 15: this & function methods

    How this is decided, and how call, apply, and bind take control.

    1. 15.1The this keyword12 min
    2. 15.2call, apply & bind12 min
    3. 15.3Arrow functions & lexical this12 min
    4. 15.4Losing this12 min
    5. 15.5Functions are objects14 min
  4. 4 lessons · 47 min

    Module 16: Types & coercion in depth

    The spec's conversion rules, so == and + never surprise you again.

    1. 16.1Methods on primitives10 min
    2. 16.2Type coercion12 min
    3. 16.3Equality & sameness12 min
    4. 16.4Checking types reliably13 min

Stage 5 Intermediate

Objects, prototypes & classes

Inheritance, classes, property internals, and error handling: build robust object models.

4 modules · 19 lessons

  1. 5 lessons · 59 min

    Module 17: Prototypes & inheritance

    How objects inherit behavior from other objects.

    1. 17.1The prototype chain11 min
    2. 17.2F.prototype & constructors12 min
    3. 17.3Built-in prototypes11 min
    4. 17.4Object.create & null-prototype objects12 min
    5. 17.5Delegation vs classical inheritance13 min
  2. 7 lessons · 1 h 26 min

    Module 18: Classes

    The class syntax, inheritance, and encapsulation.

    1. 18.1Class basics12 min
    2. 18.2Inheritance with extends & super13 min
    3. 18.3Static members & static blocks12 min
    4. 18.4Private fields & methods12 min
    5. 18.5Extending built-ins & instanceof12 min
    6. 18.6Mixins & composition13 min
    7. 18.7OOP principles in JavaScript12 min
  3. 4 lessons · 49 min

    Module 19: Property internals

    Descriptors, accessors, and the rules that control every property.

    1. 19.1Property flags & descriptors12 min
    2. 19.2Getters & setters12 min
    3. 19.3Freezing, sealing & immutability13 min
    4. 19.4Enumerability & ownership12 min
  4. 3 lessons · 40 min

    Module 20: Error handling

    Expect failure, handle it, and report it clearly.

    1. 20.1try, catch & finally14 min
    2. 20.2Throwing & custom errors12 min
    3. 20.3Error handling strategies14 min

Stage 6 Intermediate

Asynchronous JavaScript

Timers, the event loop, promises, and async/await: code that waits without blocking.

3 modules · 14 lessons

  1. 4 lessons · 55 min

    Module 21: The event loop

    How single-threaded JavaScript handles work that finishes later.

    1. 21.1Synchronous vs asynchronous13 min
    2. 21.2Timers: setTimeout & setInterval12 min
    3. 21.3The event loop18 min
    4. 21.4Microtasks in depth12 min
  2. 6 lessons · 1 h 29 min

    Module 22: Callbacks & promises

    From callback hell to values that arrive later.

    1. 22.1Callbacks14 min
    2. 22.2Promises14 min
    3. 22.3Promise chaining16 min
    4. 22.4Error handling with promises15 min
    5. 22.5Promise combinators16 min
    6. 22.6Promisification & promise-based APIs14 min
  3. 4 lessons · 54 min

    Module 23: async & await

    Asynchronous code that reads from top to bottom.

    1. 23.1async & await14 min
    2. 23.2Sequential vs parallel12 min
    3. 23.3Cancellation with AbortController14 min
    4. 23.4Async patterns14 min

Stage 7 Intermediate

JavaScript in the browser

The DOM, events, forms, network requests, storage, and browser APIs: build real interfaces.

7 modules · 43 lessons

  1. 9 lessons · 2 h 5 min

    Module 24: The DOM

    Read and change the page from JavaScript.

    1. 24.1The browser environment12 min
    2. 24.2The DOM tree13 min
    3. 24.3Walking & searching the DOM14 min
    4. 24.4Node properties & contents14 min
    5. 24.5Attributes & properties14 min
    6. 24.6Creating & changing elements14 min
    7. 24.7Styles & classes13 min
    8. 24.8Sizes, scrolling & coordinates16 min
    9. 24.9Selection & Range15 min
  2. 8 lessons · 1 h 44 min

    Module 25: Events

    Respond to clicks, keys, and everything users do.

    1. 25.1Introduction to events13 min
    2. 25.2Bubbling & capturing12 min
    3. 25.3Event delegation14 min
    4. 25.4Default actions12 min
    5. 25.5Custom events12 min
    6. 25.6Mouse, pointer & touch13 min
    7. 25.7Keyboard & focus14 min
    8. 25.8Page & resource loading14 min
  3. 4 lessons · 58 min

    Module 26: Forms

    Read, validate, and submit user input.

    1. 26.1Form properties & elements15 min
    2. 26.2Form events14 min
    3. 26.3Form validation15 min
    4. 26.4FormData14 min
  4. 7 lessons · 1 h 46 min

    Module 27: Network requests

    Talk to servers with fetch and real-time connections.

    1. 27.1fetch & JSON16 min
    2. 27.2Requests in depth18 min
    3. 27.3CORS & cross-origin requests12 min
    4. 27.4URL & URLSearchParams13 min
    5. 27.5Streams & progress18 min
    6. 27.6WebSocket & Server-Sent Events15 min
    7. 27.7XMLHttpRequest14 min
  5. 4 lessons · 57 min

    Module 28: Storing data in the browser

    Keep data between visits.

    1. 28.1Cookies14 min
    2. 28.2localStorage & sessionStorage14 min
    3. 28.3IndexedDB14 min
    4. 28.4Cache API & file storage15 min
  6. 5 lessons · 1 h 10 min

    Module 29: Browser APIs

    Observers, animation, drawing, files, and devices.

    1. 29.1Observers15 min
    2. 29.2Animation with JavaScript13 min
    3. 29.3Drawing with canvas14 min
    4. 29.4Files & Blobs14 min
    5. 29.5Device & platform APIs14 min
  7. 6 lessons · 1 h 22 min

    Module 30: Workers, routing & components

    Background threads, offline apps, client-side routing, frames, and Web Components.

    1. 30.1Web Workers15 min
    2. 30.2Service workers & offline apps14 min
    3. 30.3History & navigation12 min
    4. 30.4Windows, iframes & postMessage13 min
    5. 30.5Messaging & structured cloning16 min
    6. 30.6Web Components12 min

Stage 8 Advanced

Advanced language features

Iteration protocols, modules, metaprogramming, functional techniques, regular expressions, and binary data.

6 modules · 34 lessons

  1. 5 lessons · 1 h 11 min

    Module 31: Iterators & generators

    The protocol behind for…of, and functions that pause.

    1. 31.1The iteration protocols14 min
    2. 31.2Generators12 min
    3. 31.3Iterator helpers15 min
    4. 31.4Async iteration & async generators14 min
    5. 31.5Generators for control flow16 min
  2. 5 lessons · 1 h 5 min

    Module 32: Modules

    Split code into files with import and export.

    1. 32.1Why modules?12 min
    2. 32.2import & export13 min
    3. 32.3Dynamic import & top-level await14 min
    4. 32.4Module resolution & import maps12 min
    5. 32.5CommonJS & ES module interop14 min
  3. 5 lessons · 1 h 11 min

    Module 33: Metaprogramming

    Code that inspects and changes how other code behaves.

    1. 33.1Proxy15 min
    2. 33.2Reflect13 min
    3. 33.3Well-known symbols14 min
    4. 33.4Decorators15 min
    5. 33.5eval & new Function14 min
  4. 8 lessons · 1 h 55 min

    Module 34: Functional programming

    Build programs from small, predictable functions.

    1. 34.1Higher-order functions14 min
    2. 34.2Pure functions & side effects13 min
    3. 34.3Immutability14 min
    4. 34.4Currying & partial application14 min
    5. 34.5Composition & pipelines14 min
    6. 34.6Memoization & laziness16 min
    7. 34.7Advanced recursion16 min
    8. 34.8Transducers, functors & monads14 min
  5. 6 lessons · 1 h 24 min

    Module 35: Regular expressions

    Search and transform text with patterns.

    1. 35.1Patterns & flags14 min
    2. 35.2Character classes & sets14 min
    3. 35.3Quantifiers: greedy & lazy14 min
    4. 35.4Groups & backreferences14 min
    5. 35.5Anchors, boundaries & lookaround14 min
    6. 35.6Regex performance & safety14 min
  6. 5 lessons · 1 h 19 min

    Module 36: Binary data & memory

    Bytes, buffers, and how memory is managed.

    1. 36.1ArrayBuffer & typed arrays16 min
    2. 36.2Text encoding & Base6416 min
    3. 36.3Memory management & garbage collection14 min
    4. 36.4WeakRef & FinalizationRegistry15 min
    5. 36.5Explicit resource management18 min

Stage 9 Advanced

Professional JavaScript

Tooling, testing, patterns, security, and performance: ship JavaScript that holds up in production.

6 modules · 35 lessons

  1. 5 lessons · 1 h 22 min

    Module 37: Tooling & the ecosystem

    The tools between your code and your users.

    1. 37.1npm & package.json16 min
    2. 37.2Bundlers & build tools16 min
    3. 37.3Transpilers & polyfills18 min
    4. 37.4Types for JavaScript: JSDoc & TypeScript16 min
    5. 37.5Beyond the browser: Node.js, Deno & Bun16 min
  2. 5 lessons · 1 h 24 min

    Module 38: Testing & debugging

    Prove your code works, and find out fast when it doesn't.

    1. 38.1Unit testing18 min
    2. 38.2Mocks, spies & fakes16 min
    3. 38.3Testing async code16 min
    4. 38.4Testing the DOM & end to end16 min
    5. 38.5Advanced debugging18 min
  3. 6 lessons · 1 h 39 min

    Module 39: Design patterns & architecture

    Proven shapes for organizing JavaScript code.

    1. 39.1Creational patterns16 min
    2. 39.2Observer & pub/sub18 min
    3. 39.3Structural & behavioral patterns16 min
    4. 39.4State management16 min
    5. 39.5Structuring an application16 min
    6. 39.6Designing good APIs17 min
  4. 7 lessons · 2 h 4 min

    Module 40: Build it from scratch

    Rebuild language features and classic utilities to prove you understand them.

    1. 40.1Polyfill array methods18 min
    2. 40.2Polyfill call, apply & bind16 min
    3. 40.3Build a promise from scratch18 min
    4. 40.4Classic utilities18 min
    5. 40.5Build an event emitter18 min
    6. 40.6Build a jQuery-style library16 min
    7. 40.7Build a tiny reactive UI20 min
  5. 6 lessons · 1 h 47 min

    Module 41: Security

    Write JavaScript that attackers can't turn against your users.

    1. 41.1XSS & safe DOM updates18 min
    2. 41.2CSRF, cookies & tokens18 min
    3. 41.3Prototype pollution17 min
    4. 41.4Supply-chain security20 min
    5. 41.5Isolation & sandboxing16 min
    6. 41.6The Web Crypto API18 min
  6. 6 lessons · 1 h 40 min

    Module 42: Performance

    Measure first, then make it fast.

    1. 42.1Measuring performance18 min
    2. 42.2Keeping the main thread responsive16 min
    3. 42.3Debounce & throttle16 min
    4. 42.4DOM & rendering performance17 min
    5. 42.5Loading performance17 min
    6. 42.6Finding memory leaks16 min

Stage 10 Expert

Inside the engine

How engines like V8, SpiderMonkey, and JavaScriptCore parse, compile, optimize, lay out, and garbage-collect your code.

8 modules · 54 lessons

  1. 7 lessons · 1 h 56 min

    Module 43: Engine architecture

    The pieces of a JavaScript engine, and the path from source text to running code.

    1. 43.1Meet the engines18 min
    2. 43.2Scanning source text18 min
    3. 43.3Parsing & abstract syntax trees16 min
    4. 43.4Lazy parsing & preparsing14 min
    5. 43.5Scope analysis & variable allocation14 min
    6. 43.6Bytecode & interpreters18 min
    7. 43.7Startup: snapshots & code caching18 min
  2. 8 lessons · 2 h 15 min

    Module 44: JIT compilation & optimization

    How engines watch your code run, then compile the hot parts to fast machine code.

    1. 44.1Tiered compilation18 min
    2. 44.2Type feedback & feedback vectors16 min
    3. 44.3Inline caches16 min
    4. 44.4Baseline compilers17 min
    5. 44.5Optimizing compilers17 min
    6. 44.6Speculation & deoptimization16 min
    7. 44.7What optimizing compilers do18 min
    8. 44.8On-stack replacement17 min
  3. 12 lessons · 3 h 26 min

    Module 45: Values & objects inside the engine

    How engines lay out numbers, strings, objects, arrays, and functions in memory.

    1. 45.1Tagged values, Smis & heap numbers17 min
    2. 45.2Booleans inside the engine17 min
    3. 45.3undefined inside the engine17 min
    4. 45.4null inside the engine17 min
    5. 45.5Strings inside the engine17 min
    6. 45.6BigInt inside the engine17 min
    7. 45.7Symbols inside the engine17 min
    8. 45.8Hidden classes & object shapes18 min
    9. 45.9Fast arrays & elements kinds18 min
    10. 45.10Functions & closures inside the engine17 min
    11. 45.11Prototypes inside the engine17 min
    12. 45.12The heap & pointer compression17 min
  4. 7 lessons · 1 h 58 min

    Module 46: The call stack in depth

    What a stack frame really holds, how calls, returns, and exceptions work, and how stack traces are built.

    1. 46.1Stack frames & calling conventions17 min
    2. 46.2Stack limits & stack overflow17 min
    3. 46.3Tail calls17 min
    4. 46.4Stack traces & the stack trace API17 min
    5. 46.5Async stack traces16 min
    6. 46.6Suspending frames: generators & async functions17 min
    7. 46.7Exceptions & unwinding17 min
  5. 8 lessons · 2 h 23 min

    Module 47: Garbage collection in depth

    The algorithms that free memory automatically, and the trade-offs behind them.

    1. 47.1Why garbage collection?17 min
    2. 47.2Reference counting & cycles16 min
    3. 47.3Mark-sweep & mark-compact16 min
    4. 47.4Generational collection & the Scavenger18 min
    5. 47.5Write barriers & remembered sets18 min
    6. 47.6Incremental, concurrent & parallel GC18 min
    7. 47.7Weak references & ephemerons18 min
    8. 47.8Garbage collection across engines & the DOM22 min
  6. 4 lessons · 1 h 15 min

    Module 48: Memory in practice

    Measure, profile, and fix memory problems in large apps and servers.

    1. 48.1Heap snapshots in depth21 min
    2. 48.2Allocation profiling18 min
    3. 48.3Memory in large apps18 min
    4. 48.4Memory in Node.js18 min
  7. 4 lessons · 1 h 11 min

    Module 49: Asynchrony inside the engine

    How promises, await, and the microtask queue are implemented.

    1. 49.1How promises work inside18 min
    2. 49.2await under the hood18 min
    3. 49.3The microtask queue17 min
    4. 49.4How async code is compiled down18 min
  8. 4 lessons · 1 h 12 min

    Module 50: Performance at the engine level

    Write code that stays on the fast path, and prove it with engine tools.

    1. 50.1Writing engine-friendly code18 min
    2. 50.2Looking inside the engine18 min
    3. 50.3CPU profiling in depth18 min
    4. 50.4Benchmarking without fooling yourself18 min

Stage 11 Expert

The runtime & the platform

How browsers and Node.js host the engine: event loops, rendering, module loading, threads, embedding, and security.

5 modules · 31 lessons

  1. 7 lessons · 2 h 6 min

    Module 51: The event loop in depth

    The real processing model behind tasks, microtasks, and rendering.

    1. 51.1The HTML event loop processing model18 min
    2. 51.2Rendering & the event loop18 min
    3. 51.3Events, microtasks & ordering18 min
    4. 51.4Timers in depth18 min
    5. 51.5Scheduling work18 min
    6. 51.6The Node.js event loop18 min
    7. 51.7libuv & the thread pool18 min
  2. 8 lessons · 2 h 24 min

    Module 52: How browsers run JavaScript

    Processes, threads, and the pipeline from HTML bytes to running scripts and pixels.

    1. 52.1Browser architecture18 min
    2. 52.2What happens when you navigate18 min
    3. 52.3From HTML to running script18 min
    4. 52.4The rendering pipeline18 min
    5. 52.5How input reaches your event handlers18 min
    6. 52.6Bindings: how DOM objects exist in JavaScript18 min
    7. 52.7Realms, globals & WindowProxy18 min
    8. 52.8The browser security model18 min
  3. 6 lessons · 1 h 48 min

    Module 53: Modules under the hood

    How module graphs are loaded, linked, and evaluated.

    1. 53.1Load, link, evaluate18 min
    2. 53.2Circular dependencies18 min
    3. 53.3Top-level await & async evaluation18 min
    4. 53.4Module loading in browsers18 min
    5. 53.5Module loading in Node.js18 min
    6. 53.6Modules through a bundler18 min
  4. 5 lessons · 1 h 34 min

    Module 54: Threads, agents & realms

    Shared memory, atomics, and truly parallel JavaScript.

    1. 54.1Agents, agent clusters & realms18 min
    2. 54.2How workers work18 min
    3. 54.3SharedArrayBuffer & Atomics22 min
    4. 54.4The memory model18 min
    5. 54.5Parallel patterns with workers18 min
  5. 5 lessons · 1 h 30 min

    Module 55: Engines & runtimes beyond the browser

    Isolates, embedders, and the runtimes built on top of engines.

    1. 55.1Embedding V818 min
    2. 55.2Node.js architecture18 min
    3. 55.3Inside Deno, Bun & edge runtimes18 min
    4. 55.4Small & embedded engines18 min
    5. 55.5JavaScript & WebAssembly18 min

Stage 12 Expert

The specification & the language

Understand JavaScript the way engine authors and TC39 do: the spec's model, its legacy, its tooling, and where it's heading.

4 modules · 28 lessons

  1. 12 lessons · 3 h 46 min

    Module 56: Reading the specification

    Understand JavaScript the way engine authors do.

    1. 56.1How to read ECMAScript19 min
    2. 56.2Spec types: Completion, Property Descriptor & more19 min
    3. 56.3The Reference type & this18 min
    4. 56.4Environment Records: how scope is specified18 min
    5. 56.5Execution contexts & jobs in the spec19 min
    6. 56.6Function calls: [[Call]] & [[Construct]]19 min
    7. 56.7Internal methods & exotic objects22 min
    8. 56.8A tour of the abstract operations19 min
    9. 56.9Lexical grammar & ASI18 min
    10. 56.10Syntax, early errors & static semantics19 min
    11. 56.11Evaluation order18 min
    12. 56.12test262 & conformance18 min
  2. 5 lessons · 1 h 28 min

    Module 57: Legacy JavaScript & web compatibility

    Sloppy mode, Annex B, and the deprecated features the web can't remove.

    1. 57.1Sloppy mode in depth18 min
    2. 57.2The with statement16 min
    3. 57.3Annex B: web legacy features20 min
    4. 57.4Deprecated & obsolete features18 min
    5. 57.5Don't break the web16 min
  3. 5 lessons · 1 h 29 min

    Module 58: The evolving language

    How new features are made, and what's coming next.

    1. 58.1The early editions: ES1 to ES516 min
    2. 58.2How JavaScript evolves15 min
    3. 58.3Modern JavaScript: ES2015 to today20 min
    4. 58.4On the horizon18 min
    5. 58.5How new syntax is downleveled20 min
  4. 6 lessons · 2 h 14 min

    Module 59: Tools that understand JavaScript

    Parse, analyze, and transform JavaScript yourself, the way compilers and linters do.

    1. 59.1Working with ASTs20 min
    2. 59.2Codemods & Babel plugins20 min
    3. 59.3How linters & formatters work22 min
    4. 59.4Source maps in depth22 min
    5. 59.5How minifiers work20 min
    6. 59.6Build a tiny JavaScript interpreter30 min