What is The Modern JavaScript Tutorial (javascript.info)?
Updated
The Modern JavaScript Tutorial at javascript.info is a free, text-based JavaScript learning resource that takes readers from first steps to advanced topics such as closures, object-oriented programming, and asynchronous code. It is best suited to self-directed learners who want a structured, example-heavy curriculum they can work through in a browser, and to developers who need a reference for specific language features.
What the site covers
The tutorial is organized into three main parts, each with its own focus:
| Part | Scope | Example topics |
|---|---|---|
| The JavaScript language | The language itself, with minimal environment-specific notes | Variables, data types, operators, functions, objects, arrays, closures, prototypes, classes, error handling, promises, async/await, generators, modules |
| Browser: Document, Events, Interfaces | JavaScript in the browser | Document and events, interfaces |
| Additional articles | Supplementary material | Further topics beyond the two core parts |
The first part is deliberately environment-agnostic. As the site states, it concentrates on the language itself with the minimum of environment-specific notes, so you can learn core JavaScript without first committing to Node.js or a particular browser API.
How the material is structured
Within the language part, topics are ordered from fundamentals to advanced concepts. A representative sequence from the table of contents:
- An introduction — what JavaScript is, manuals and specifications, code editors, the developer console
- JavaScript Fundamentals — hello world, code structure,
"use strict", variables, data types,alert/prompt/confirm, type conversions, operators, comparisons, conditionals, logical operators, nullish coalescing, loops,switch, functions, arrow functions - Code quality — debugging in the browser, coding style, comments, automated testing with Mocha, polyfills and transpilers
- Objects: the basics — object references and copying, garbage collection,
this, constructor andnew, optional chaining, symbols, object-to-primitive conversion - Data types — primitives, numbers, strings, arrays, array methods, iterables,
MapandSet,WeakMapandWeakSet, destructuring,Date, JSON - Advanced working with functions — recursion and stack, rest and spread, scope and closure,
var, the global object,setTimeout/setInterval, decorators and forwarding, function binding - Prototypes, classes, and error handling — prototypal inheritance, class syntax and inheritance, private and protected members,
try...catch, custom errors - Promises, async/await, generators, modules — callbacks, promise chaining, promise API, microtasks, async iteration, export and import, dynamic imports
- Miscellaneous —
ProxyandReflect,eval, currying, reference types
This ordering means you can read sequentially for a full course, or jump to a single chapter when you need to understand one mechanism.
Learning format
Each topic combines three elements:
- Explanation — prose that describes the concept and its behavior.
- Examples — runnable code illustrating the concept.
- Tasks — exercises tied to the material so you can test your understanding rather than only read.
The site describes itself as "simple, but detailed explanations with examples and tasks." That combination is what distinguishes it from a bare reference: the explanations aim to be readable, while the tasks give you a way to verify that you actually absorbed the material.
Who it is for
- Beginners starting from scratch who want a guided path through the language.
- Intermediate developers filling gaps in topics like closures, prototypes, or the event loop.
- Developers using it as a reference for a specific feature, since chapters are self-contained enough to consult individually.
Because the first part avoids environment-specific details, it works for learners who have not yet decided whether they will use JavaScript mainly in the browser or on the server.
How to use it
- For a full course: work through Part 1 in order, completing the tasks in each chapter before moving on. The sequence is designed so later topics assume earlier ones.
- For a specific question: use the table of contents to jump directly to the relevant chapter, then read the explanation and run the examples.
- For browser work: move to Part 2 once you are comfortable with the language fundamentals, since it assumes that base.
- For practice: treat the tasks as the primary check on your understanding; reading alone tends to produce familiarity without retention.
The tutorial is presented in English and delivered as web pages, so no installation is required to read it—though you will want a code editor and a browser console to run examples and complete tasks.