Free curriculum

Learn JavaScript, lesson by lesson

Learn JavaScript, the language of the web, from values and functions through objects, closures, asynchronous work, DOM APIs, modules, performance, and resilient browser applications.

Fundamentals come first; browser behavior and asynchronous composition follow, with advanced language features and a web-app capstone completing the path.

25 lessonsAbout 597 minutesThe runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.

Complete curriculum

Work in order, or open any lesson as a public reading reference. Interactive practice remains optional.

  1. Lesson 1 · basics · foundations

    Introduction to JavaScript

    Start learning JavaScript from scratch. This beginner tutorial covers why JS powers the web and how to write your first program.

    Read lesson →
    Position
    core · 12 min
    Prerequisites
    None
    Outcomes
    Syntax Fluency
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  2. Lesson 2 · basics · foundations

    Variables and Data Types

    Master JavaScript variables and data types including let, const, var, type coercion, and truthy/falsy values in this hands-on tutorial.

    Read lesson →
    Position
    core · 18 min
    Prerequisites
    Introduction to JavaScript
    Outcomes
    Syntax Fluency
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  3. Lesson 3 · basics · foundations

    Functions in JavaScript

    Learn how to create reusable code with functions

    Read lesson →
    Position
    core · 18 min
    Prerequisites
    Introduction to JavaScript, Variables and Data Types
    Outcomes
    Syntax Fluency, Abstraction & Design
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  4. Lesson 4 · basics · foundations

    Control Flow

    Learn JavaScript control flow with if/else, switch, ternary operators, and loops. Build programs that make decisions and repeat actions.

    Read lesson →
    Position
    core · 18 min
    Prerequisites
    Introduction to JavaScript, Variables and Data Types, Functions in JavaScript
    Outcomes
    Syntax Fluency
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  5. Lesson 5 · basics · foundations

    Data Structures

    Learn how to organize data with JavaScript arrays and objects. Covers destructuring, spread operator, and essential array methods.

    Read lesson →
    Position
    core · 18 min
    Prerequisites
    Introduction to JavaScript, Variables and Data Types, Functions in JavaScript, Control Flow
    Outcomes
    Data Modeling, Syntax Fluency
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  6. Lesson 6 · basics · foundations

    Array Methods

    JavaScript array methods tutorial — master map, filter, reduce, find, some, every, and more with interactive examples you can edit and run

    Read lesson →
    Position
    core · 25 min
    Prerequisites
    Functions in JavaScript, Data Structures, Control Flow
    Outcomes
    Data Structures & Algorithms
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  7. Lesson 7 · basics · foundations

    Destructuring and Spread

    Learn JavaScript destructuring and the spread operator. Unpack arrays and objects to write cleaner, more expressive modern JavaScript.

    Read lesson →
    Position
    core · 20 min
    Prerequisites
    Data Structures, Functions in JavaScript, Array Methods
    Outcomes
    Syntax Fluency
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  8. Lesson 8 · intermediate · language

    Objects and Prototypes

    Master JavaScript objects, the this keyword, and prototypal inheritance. Learn how JS shares behavior between objects under the hood.

    Read lesson →
    Position
    core · 22 min
    Prerequisites
    Introduction to JavaScript, Variables and Data Types, Functions in JavaScript
    Outcomes
    Abstraction & Design, Data Modeling
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  9. Lesson 9 · intermediate · language

    Closures and Scope

    Understand JavaScript closures and scope. Learn lexical scoping, the module pattern, IIFEs, and practical closure patterns for data privacy.

    Read lesson →
    Position
    core · 24 min
    Prerequisites
    Functions in JavaScript, Objects and Prototypes
    Outcomes
    Abstraction & Design
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  10. Lesson 10 · intermediate · language

    Async and Promises

    Master asynchronous JavaScript with callbacks, Promises, and async/await. Learn to write non-blocking code and handle async errors.

    Read lesson →
    Position
    core · 26 min
    Prerequisites
    Functions in JavaScript, Closures and Scope
    Outcomes
    Performance & Runtime, Abstraction & Design
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  11. Lesson 11 · intermediate · language

    Error Handling

    Learn JavaScript error handling with try/catch/finally, custom error classes, and defensive programming techniques for robust code.

    Read lesson →
    Position
    core · 20 min
    Prerequisites
    Functions in JavaScript, Control Flow
    Outcomes
    Security & Robustness, Architecture & Maintainability
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  12. Lesson 12 · intermediate · browser

    DOM and Events

    Learn JavaScript DOM manipulation and event handling. Select elements, modify content, create dynamic pages, and respond to user actions.

    Read lesson →
    Position
    core · 24 min
    Prerequisites
    Functions in JavaScript, Objects and Prototypes
    Outcomes
    Abstraction & Design, Architecture & Maintainability
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  13. Lesson 13 · intermediate · browser

    Local Storage and State

    Learn localStorage and sessionStorage to persist data in the browser. Manage simple application state without a framework.

    Read lesson →
    Position
    core · 25 min
    Prerequisites
    Variables and Data Types, Data Structures, Objects and Prototypes, Async and Promises
    Outcomes
    Architecture & Maintainability, Data Modeling
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  14. Lesson 14 · intermediate · browser

    Form Validation

    Learn client-side form validation with JavaScript. Cover built-in validation, custom rules, real-time feedback, and accessible errors.

    Read lesson →
    Position
    core · 25 min
    Prerequisites
    Functions in JavaScript, DOM and Events, Async and Promises
    Outcomes
    Security & Robustness
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  15. Lesson 15 · advanced · engineering

    Modules and Bundling

    Organize your JavaScript code with ES modules. Learn import/export syntax, default vs named exports, and dynamic imports for code splitting.

    Read lesson →
    Position
    core · 22 min
    Prerequisites
    Functions in JavaScript, Closures and Scope
    Outcomes
    Architecture & Maintainability, Production Delivery
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  16. Lesson 16 · advanced · engineering

    Testing and Debugging

    Learn JavaScript testing and debugging. Write unit tests, use TDD, master console methods, and build reliable debugging strategies.

    Read lesson →
    Position
    core · 24 min
    Prerequisites
    Functions in JavaScript, Error Handling, Objects and Prototypes
    Outcomes
    Testing & Debugging
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  17. Lesson 17 · advanced · engineering

    Web APIs and Fetch

    Learn the JavaScript Fetch API to make HTTP requests, handle JSON responses, and build robust API clients with error handling.

    Read lesson →
    Position
    core · 24 min
    Prerequisites
    Async and Promises, Error Handling
    Outcomes
    Security & Robustness, Architecture & Maintainability
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  18. Lesson 18 · advanced · engineering

    Performance Optimization

    Optimize your JavaScript with debouncing, throttling, memoization, and memory management

    Read lesson →
    Position
    core · 22 min
    Prerequisites
    Closures and Scope, Async and Promises
    Outcomes
    Performance & Runtime
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  19. Lesson 19 · advanced · capstone

    Capstone Project: Task Manager

    Build a real in-browser Task Manager: render tasks with the real DOM, persist them across reloads with localStorage, and validate a real form. The pure-logic layers still run in the embedded playground.

    Read lesson →
    Position
    capstone · 60 min
    Prerequisites
    Async and Promises, Error Handling, DOM and Events, Local Storage and State, Form Validation
    Outcomes
    Architecture & Maintainability, Abstraction & Design
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  20. Lesson 20 · intermediate · extensions

    Classes and Inheritance

    Learn JavaScript classes and inheritance. Build reusable blueprints with constructors, methods, static fields, and extends for OOP.

    Read lesson →
    Position
    extension · 25 min
    Prerequisites
    Functions in JavaScript, Data Structures, Destructuring and Spread, Objects and Prototypes
    Outcomes
    Abstraction & Design, Data Modeling
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  21. Lesson 21 · intermediate · extensions

    Regular Expressions

    Master regular expressions in JavaScript. Learn regex syntax, search and replace patterns, and practical validation techniques.

    Read lesson →
    Position
    extension · 25 min
    Prerequisites
    Functions in JavaScript, Data Structures, Variables and Data Types
    Outcomes
    Security & Robustness, Syntax Fluency
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  22. Lesson 22 · intermediate · extensions

    Date and Time

    Master JavaScript's Date object to create, format, compare, and manipulate dates and times for building real-world applications.

    Read lesson →
    Position
    extension · 25 min
    Prerequisites
    Variables and Data Types, Functions in JavaScript, Data Structures
    Outcomes
    Data Modeling
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  23. Lesson 23 · advanced · extensions

    Generators and Iterators

    Learn JavaScript generators and iterators to produce values on demand. Unlock lazy evaluation, infinite sequences, and async patterns.

    Read lesson →
    Position
    extension · 25 min
    Prerequisites
    Functions in JavaScript, Data Structures, Async and Promises
    Outcomes
    Abstraction & Design, Performance & Runtime
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  24. Lesson 24 · advanced · extensions

    Proxy and Reflect

    Learn JavaScript Proxy and Reflect to intercept object operations. Build validation, logging, and reactive data patterns.

    Read lesson →
    Position
    extension · 25 min
    Prerequisites
    Functions in JavaScript, Data Structures, Classes and Inheritance, Objects and Prototypes
    Outcomes
    Abstraction & Design, Security & Robustness
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.
  25. Lesson 25 · advanced · extensions

    Web Workers

    Learn Web Workers to run JavaScript in background threads. Keep the main thread responsive during CPU-intensive tasks and data processing.

    Read lesson →
    Position
    extension · 25 min
    Prerequisites
    Functions in JavaScript, Async and Promises, Classes and Inheritance
    Outcomes
    Performance & Runtime
    Runtime / version
    The runner executes JavaScript with Node.js in a server sandbox, without browser DOM APIs.