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.
Complete curriculum
Work in order, or open any lesson as a public reading reference. Interactive practice remains optional.
- Read lesson →
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.
- 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.
- Read lesson →
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.
- 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.
- Read lesson →
Lesson 3 · basics · foundations
Functions in JavaScript
Learn how to create reusable code with functions
- 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.
- Read lesson →
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.
- 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.
- Read lesson →
Lesson 5 · basics · foundations
Data Structures
Learn how to organize data with JavaScript arrays and objects. Covers destructuring, spread operator, and essential array methods.
- 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.
- Read lesson →
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
- 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.
- Read lesson →
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.
- 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.
- Read lesson →
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.
- 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.
- Read lesson →
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.
- 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.
- Read lesson →
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.
- 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.
- Read lesson →
Lesson 11 · intermediate · language
Error Handling
Learn JavaScript error handling with try/catch/finally, custom error classes, and defensive programming techniques for robust code.
- 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.
- Read lesson →
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.
- 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.
- Read lesson →
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.
- 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.
- Read lesson →
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.
- 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.
- Read lesson →
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.
- 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.
- Read lesson →
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.
- 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.
- Read lesson →
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.
- 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.
- Read lesson →
Lesson 18 · advanced · engineering
Performance Optimization
Optimize your JavaScript with debouncing, throttling, memoization, and memory management
- 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.
- Read lesson →
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.
- 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.
- Read lesson →
Lesson 20 · intermediate · extensions
Classes and Inheritance
Learn JavaScript classes and inheritance. Build reusable blueprints with constructors, methods, static fields, and extends for OOP.
- 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.
- Read lesson →
Lesson 21 · intermediate · extensions
Regular Expressions
Master regular expressions in JavaScript. Learn regex syntax, search and replace patterns, and practical validation techniques.
- 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.
- Read lesson →
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.
- 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.
- Read lesson →
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.
- 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.
- Read lesson →
Lesson 24 · advanced · extensions
Proxy and Reflect
Learn JavaScript Proxy and Reflect to intercept object operations. Build validation, logging, and reactive data patterns.
- 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.
- Read lesson →
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.
- 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.