JavaScript — Interactive Tutorial

A complete JavaScript learning path: five levels from your first program to expert internals. Every lesson has runnable examples, a quiz, and coding challenges — all free.

The whole path

57 of 151 lessons written

Intermediate

The DOM
  1. What the DOM Actually Is
  2. Selecting Elements
  3. Changing Text and HTML
  4. Attributes and Data Attributes
  5. Classes and Styles
  6. Creating and Removing Elements
  7. Moving Around the Tree
  8. Efficient DOM Updates
Events
  1. Listening for Events
  2. Bubbling and Capturing
  3. Event Delegation
  4. Forms and preventDefault
  5. Keyboard and Mouse Events
  6. Custom Events
Asynchronous JavaScript
  1. setTimeout and setInterval
  2. Synchronous vs Asynchronous
  3. Callback Hell
  4. Promises
  5. Chaining Promises
  6. Handling Promise Failures
  7. async and await
  8. Promise.all and Friends
  9. Async Iteration
Talking to the Network
  1. fetch: Getting Data
  2. Sending Data
  3. When Requests Fail
  4. URLs and Query Strings
  5. Storing Data in the Browser
  6. Useful Browser APIs
Classes
  1. Classes
  2. Inheritance with extends
  3. Getters and Setters
  4. Static and Private Members
  5. Debouncing and Throttling
  6. Project: Live Weather App

Advanced

The Object Model
  1. Prototypes
  2. Prototypal Inheritance
  3. What class Really Compiles To
  4. Property Descriptors
  5. Freezing and Copying
Functional JavaScript
  1. Closures in Depth
  2. IIFEs and Scope Isolation
  3. Currying and Partial Application
  4. Function Composition
  5. Memoization
  6. this: The Real Rules
Iteration Protocols
  1. Iterators and Symbol.iterator
  2. Generators
  3. Symbols
  4. WeakMap and WeakSet
  5. Proxy and Reflect
The Runtime
  1. The Event Loop
  2. Modules in Depth
  3. Bundlers and Tree Shaking
  4. Designing for Failure
Browser Platform
  1. Observers
  2. Web Components
  3. Drawing with Canvas
  4. Web Workers
  5. Advanced Regular Expressions
  6. Internationalisation
Patterns and Practice
  1. Design Patterns in JavaScript
  2. Testing Your Code
  3. Project: Kanban Board

Expert

How JavaScript Runs
  1. Parsing, JIT and Bytecode
  2. Execution Contexts
  3. Hoisting and the TDZ
  4. Memory: Heap, Stack, References
  5. Garbage Collection
Performance
  1. Measuring Before Optimising
  2. How Engines Optimise
  3. Rendering Performance
  4. Code Splitting and Lazy Loading
  5. Cancellation and Backpressure
  6. Streams
Security
  1. XSS and Safe Rendering
  2. CORS, CSP and Origins
  3. Prototype Pollution
Mastery
  1. Metaprogramming
  2. Decorators and Wrapping Behaviour
  3. Typed Arrays and Binary Data
  4. WebAssembly Interop
  5. Types Without TypeScript
  6. Testing in Depth
  7. Debugging Like a Professional
  8. Designing APIs Others Enjoy
  9. Reading Someone Else's Code
  10. Capstone: A Complete Single-Page App