Website profiles · Technology insights · Alternatives

javascript.info

Modern JavaScript Tutorial: simple, but detailed explanations with examples and tasks, including: closures, document and events, object oriented programming and more.

No paid content found
Visit website
Profile views 9 Outbound visits 12 Normal
The Modern JavaScript Tutorial Full homepage screenshot

At a glance

Category
Development
Language
English
Paid-content signal
No paid content foundObserved
Registered
2001
Hosting
CloudflareInferred
HTTPS certificate trusted
PassedObserved
Last updated

Website review

This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.

What is The Modern JavaScript Tutorial?

The Modern JavaScript Tutorial is a free, text-based course that teaches JavaScript from the ground up and then goes deep into advanced topics. Its distinguishing feature is structure: it is organized as a book with three main parts, so you can follow it linearly or jump to a specific subject.

The Modern JavaScript Tutorial covers the language itself first, deliberately keeping environment-specific notes to a minimum, then moves to the browser, then to extra articles.

What it covers

  • The JavaScript language: fundamentals (variables, types, operators, loops, functions), code quality and testing, objects, data types such as arrays, Map/Set, Date and JSON, closures and advanced function techniques, property descriptors, prototypes and inheritance, classes, error handling, promises and async/await, generators, and modules.
  • Browser: Document, Events, Interfaces: DOM and event handling, for readers who want to build interactive pages rather than only write language-level code.
  • Additional articles: supplementary material beyond the two main tracks.

Each chapter is short and example-driven, and most end with tasks you can attempt yourself - a useful check that you actually absorbed the material rather than just read it.

Who it suits

It works best for self-directed learners who already know how to run code and are comfortable reading. A typical reader is someone who has done a little HTML and wants a rigorous, ordered path into JavaScript without a video course. If you prefer video explanations or need a certificate for an employer, this format will not match that goal.

How to use it

Start with Part 1 in order and do the tasks at the end of each chapter; treat Parts 2 and 3 as reference you return to when a project needs them. If you are choosing between resources, a reasonable decision criterion is whether you want depth with exercises (this) or quick, project-based momentum (a tutorial that builds one app end to end).

How does this tutorial structure its lessons for beginners versus advanced learners?

The tutorial is organized as a linear path that starts from absolute basics and layers on advanced material, rather than splitting into two separate tracks. Beginners work through the early sections in order; experienced learners can jump ahead to the parts they need.

Beginner path

The first sections assume no prior JavaScript. They cover "Hello, world!", code structure, the modern "use strict" mode, variables, data types, interaction dialogs (alert, prompt, confirm), type conversions, operators, comparisons, conditionals, logical operators, the nullish coalescing operator ??, loops, switch, functions, function expressions and arrow functions. From there, beginners meet code quality material: debugging in the browser, coding style, comments and automated testing with Mocha.

Intermediate and advanced material

Later sections move into objects and data types (object references and copying, garbage collection, this, constructors, optional chaining ?., symbols, primitives methods, numbers, strings, arrays and array methods, iterables, Map/Set, WeakMap/WeakSet, destructuring, Date, JSON), then advanced functions (recursion, rest/spread, scope and closure, the old var, the global object, Function objects, NFE, new Function, scheduling, decorators, call/apply, binding), object property configuration, prototypes and inheritance, classes, error handling, promises and async/await, generators and async iteration, modules, and miscellaneous topics such as Proxy, Reflect, eval and currying.

How the three parts differ

Part Focus Typical audience
The JavaScript language The language itself, with minimal environment-specific notes Beginners through advanced learners
Browser: Document, Events, Interfaces DOM, events and browser interfaces Learners ready to build in-page behavior
Additional articles Extra topics beyond the core sequence Readers filling specific gaps

Practical takeaway

If you are new, start at the beginning and do the tasks after each section; the sequence is designed so later topics depend on earlier ones. If you already program in another language, skim the fundamentals and begin where the concepts become unfamiliar—likely objects, closures or promises. The browser part is best treated as a separate phase once the language core feels comfortable, since it assumes the fundamentals are in place.

A useful next step is to open the table of contents and mark the first section whose title you cannot explain confidently, then start there. For a second reference while working through it, the MDN Web Docs at MDN Web Docs covers the same language features in a reference format.

What specific JavaScript topics like closures, OOP, and events does it cover?

The Modern JavaScript Tutorial covers closures, OOP and events as full chapters rather than passing mentions, and it separates language fundamentals from browser work so you can study one without the other.

Closures and functions

  • Recursion and stack; rest parameters and spread syntax
  • Variable scope and closure
  • The old var, global object, function object, NFE
  • The new Function syntax; scheduling with setTimeout/setInterval
  • Decorators and forwarding, call/apply; function binding; arrow functions revisited

Object-oriented programming

  • Object basics: references and copying, garbage collection, methods and this, constructor and new, optional chaining, symbols, object-to-primitive conversion
  • Prototypes and inheritance: prototypal inheritance, F.prototype, native prototypes, prototype methods and objects without __proto__
  • Classes: basic syntax, inheritance, static properties and methods, private and protected members, extending built-ins, instanceof, mixins

Events and browser interfaces

  • A dedicated part titled "Browser: Document, Events, Interfaces," sitting alongside the language part and additional articles
  • Listed under the same table of contents as the language material, so events are treated as a first-class topic rather than an appendix

Beyond those three

  • Data types: numbers, strings, arrays and array methods, iterables, Map/Set, WeakMap/WeakSet, destructuring, Date, JSON
  • Error handling, promises and async/await, generators and async iteration, modules and dynamic imports, proxies, reflection, currying

How to use this If you are learning closures for the first time, read the scope and closure chapter right after the functions chapter, then immediately try the tasks attached to each page. If you already write JavaScript and mainly need OOP, start at prototypes and inheritance before classes, because the class chapter assumes you understand the prototype chain.

For a second reference to cross-check explanations, MDN Web Docs at MDN Web Docs is the standard documentation source, and The Modern JavaScript Tutorial itself is the site described here.

Can I practice with interactive tasks and examples to reinforce learning?

Yes. The Modern JavaScript Tutorial is built around learning by doing: nearly every topic pairs its explanation with runnable examples and end-of-section tasks, so you can type code, predict the output, then check your answer. The tutorial's own table of contents lists "tasks" alongside concepts throughout, and the material is split into three parts — the JavaScript language, browser document/events/interfaces, and additional articles — which lets you practice core syntax first and then apply it to real page interaction.

How the practice works in a typical session

  • Read a short explanation of the concept.
  • Study the worked example and try to predict what it prints or returns.
  • Solve the task for that section without peeking.
  • Compare with the provided solution and re-run the code if your result differs.

What to practice, by goal

Your goal Where to focus Why
Learn syntax from zero JavaScript Fundamentals, Objects basics, Data types Short examples make early mistakes cheap to fix
Think in functions and async Advanced working with functions, Promises/async-await Tasks here expose closure and timing mistakes that reading alone hides
Build interactive pages Browser: Document, Events, Interfaces Exercises involve DOM manipulation and event handling, not just console output
Prepare for real codebases Code quality, Modules, Error handling Practice with testing, imports and custom errors transfers directly to projects

A useful next step: open a section you already know and do only its tasks. If you can solve them without reading the explanation, skip ahead; if a task stalls you, that section is your real starting point. For a second source of exercises with graded difficulty, LeetCode offers algorithm problems, and Exercism provides mentored JavaScript tracks — both complement this tutorial's explanation-first style rather than replacing it.

One trade-off to expect: the tasks reinforce the specific concept just taught, so they build fluency and confidence rather than testing you on unfamiliar problem types. If you want open-ended challenges, pair this material with a project of your own — a small to-do app or a page that fetches and displays data — and use the tutorial sections as reference when you get stuck.

How does it teach browser-related concepts such as document and event handling?

Browser topics are separated from the core language material. Part 2, "Browser: Document, Events, Interfaces," is its own section of the table of contents, so a learner can finish JavaScript fundamentals first and then move into the DOM without environment-specific notes interrupting the earlier chapters.

Within that section, the teaching order follows the browser's own structure:

  • Document — how the DOM represents a page and how to select and modify elements.
  • Events — how user actions and browser signals are handled, including the event object, bubbling, and default actions.
  • Interfaces — the browser APIs that sit around the document and events.

The page also shows the method used throughout the tutorial: short numbered lessons, runnable examples, and tasks attached to each topic. A reader is expected to type and modify code rather than only read it. The comments section under the page suggests questions are handled in context, though the depth of that support is not something the page itself documents.

A practical way to use this structure: if you already know variables, functions, and objects, start directly at Part 2 and work through the document lessons before events. If you are new to the language, the early sections on objects, arrays, and functions are prerequisites — event handling code relies on them constantly.

For comparison, MDN's learning area at MDN Web Docs takes a more reference-oriented approach to the same topics, and Eloquent JavaScript integrates the DOM into a broader programming narrative rather than isolating it. This tutorial's separation suits learners who want a clear boundary between language and browser, and who prefer exercises over prose.

Is this tutorial suitable for self-study without prior programming experience?

Yes, it's designed for that. The tutorial states it starts "from scratch" and builds up to advanced topics like OOP, so a complete beginner is the intended starting point. It is text-based, with examples and tasks you work through yourself, which suits self-paced study better than a video course you can only watch.

That said, "no programming experience" and "no JavaScript experience" are different situations, and the fit differs:

  • Never programmed at all: Workable, but slower. You'll meet ideas like variables, loops, and functions for the first time here, and the tutorial moves briskly through them. Expect to re-read sections and do the tasks rather than just read.
  • Know another language: A strong fit. You can skim the fundamentals and spend your time on JavaScript-specific behavior such as closures, prototypes, this, and the event loop.
  • Want a structured course with deadlines and feedback: Less ideal on its own. Nothing here enforces a schedule or grades your work, so you supply the discipline.

Two practical caveats. First, the tutorial focuses on the language itself with minimal environment-specific notes, so you'll need a browser and its developer console to run code — the early chapters cover setting that up. Second, self-study without prior experience usually fails from skipping practice, not from hard material. Do the tasks at the end of each section; if you can't solve one, that's the signal to re-read, not to move on.

A sensible next step is to start with Part 1's introduction and fundamentals, then judge after the first week whether the pace suits you. If the prose feels dense, pair it with a gentler beginner resource such as MDN Web Docs for a second explanation of the same concept, or freeCodeCamp if you want interactive exercises alongside reading.

Related questions

More questions →
Is The Modern JavaScript Tutorial suitable for beginners?

Yes, for motivated beginners who can read English and are comfortable using a browser-based developer console. The Modern JavaScript Tutorial (javascript.info) explicitly says it teaches JavaScript "starting from scratch" and then moves to advanced concepts like OOP, so it is designed to take a learner from zero to a fairly deep level. The main caveats are that it is text-heavy, assumes you will do the exercises, and does not hold your hand with video or a structured course schedule.

What the tutorial actually covers

The site organizes its material into three parts, which makes the progression easy to see:

Part Focus Example topics
Part 1: The JavaScript language The language itself, with minimal environment-specific notes Hello world, variables, data types, operators, functions, objects, arrays, closures, prototypes, classes, error handling, promises, async/await, generators, modules
Part 2: Browser: Document, Events, Interfaces How JavaScript works in the browser DOM, events, forms, interfaces
Part 3: Additional articles Extra material beyond the core path Additional topics and articles

For a beginner, Part 1 is the natural starting point. The opening sections are deliberately gentle: "An Introduction to JavaScript," "Hello, world!," "Code structure," "Variables," and "Data types" come before anything advanced. From there the difficulty ramps up steadily through functions, objects, and eventually asynchronous programming.

Why it works for beginners

  • It starts from scratch. The site states that it begins with the basics and goes on to advanced concepts, so you are not expected to already know another language.
  • Examples and tasks are built in. The description mentions "examples and tasks," and the table of contents shows a task-oriented structure. Doing the tasks is what turns reading into learning.
  • It explains the "why," not just the "how." Topics like closures, prototypal inheritance, and the event loop are covered with detailed explanations rather than one-line definitions, which matters when you hit the parts that confuse most newcomers.
  • It is self-contained for the language. Part 1 concentrates on JavaScript itself with minimal environment-specific notes, so you can learn the core language without first setting up a complex project.

Where beginners struggle

  • It is a tutorial, not a course. There is no instructor pacing you, no deadlines, and no certificate. You have to supply your own consistency.
  • It gets hard quickly. After the fundamentals, the material moves into closures, prototypes, classes, and async/await. These are genuinely difficult topics, and the tutorial does not slow down much.
  • English is required. The site's language is English, and the explanations are detailed, so strong reading comprehension helps.
  • You need to actually run code. Reading alone will not be enough. You should have a code editor and a browser developer console ready, and you should type out and modify the examples.

A practical way to use it as a beginner

  1. Start at "An Introduction to JavaScript" and work through Part 1 in order. Do not skip the early sections even if they look trivial.
  2. After each section, open your browser's developer console or a code editor and retype the examples from memory.
  3. Do the tasks at the end of each section before moving on. If you cannot solve one, re-read the section rather than looking up the answer immediately.
  4. Treat the advanced sections (closures, prototypes, async) as a second pass. It is normal to need to revisit them.
  5. Only move to Part 2 (Browser: Document, Events, Interfaces) once you are comfortable with the language fundamentals in Part 1.

Who should look elsewhere

If you need video instruction, a fixed schedule, or a classroom environment, this tutorial will likely feel dry. If you want to build a specific app immediately rather than learn the language systematically, a project-based course may suit you better. But if you want a thorough, free-to-read reference that takes you from "Hello, world!" to advanced JavaScript, this is one of the most complete options available.

How The Modern JavaScript Tutorial relates to manuals and specifications

The Modern JavaScript Tutorial (javascript.info) is a learning resource, not a reference. It explains JavaScript concepts step by step with examples and tasks, and it deliberately keeps environment-specific notes to a minimum so you learn the language itself. Manuals and specifications, by contrast, are authoritative reference documents: you consult them to confirm exact behavior, not to learn from scratch. The tutorial even has a dedicated section, "Manuals and specifications," that explains this relationship and points readers to the official sources.

What each resource is for

Resource Primary purpose How you use it
The Modern JavaScript Tutorial Teach concepts progressively with explanations, examples, and tasks Read sequentially, do the exercises, build understanding
Manuals (e.g., MDN-style references) Describe methods, properties, and APIs in lookup form Search for a specific method or object when you need details
Specifications (e.g., ECMAScript spec) Define the exact, normative behavior of the language Check edge cases, algorithm steps, and precise semantics

The tutorial's own framing is that it concentrates on the language itself, "with the minimum of environment-specific notes." That tells you what to expect: deep coverage of core JavaScript (closures, prototypes, classes, promises, async/await, modules, and more), but not a complete catalog of browser or Node.js APIs.

Why the tutorial includes a "Manuals and specifications" section

That section exists because learners eventually hit questions the tutorial cannot answer exhaustively. A tutorial can explain how Array.prototype.map works and when to use it; a manual lists its parameters and return value; the specification defines the exact steps the engine must follow. The tutorial's role is to get you to the point where reading the other two is productive rather than overwhelming.

How to use them together

  1. Learn the concept in the tutorial first. Work through the relevant chapter and its tasks. For example, study the Promises and async/await chapters before trying to interpret specification text about promise resolution.
  2. Use a manual for day-to-day lookup. When you need a method signature or a quick reminder, a manual is faster than re-reading a chapter.
  3. Reach for the specification when behavior is surprising. If code behaves unexpectedly at the edges, the spec is where the exact rules live.
  4. Return to the tutorial for structure. The table of contents is organized as a learning path — JavaScript language, then browser document/events/interfaces, then additional articles — which a manual or spec does not provide.

Practical caveats

  • The tutorial is not a substitute for the specification when correctness at the margins matters; it teaches, it does not define.
  • Manuals and specifications are not substitutes for the tutorial when you are starting out; they assume you already know the surrounding concepts.
  • Because the tutorial minimizes environment-specific notes, expect to consult other sources for DOM APIs, Node.js, or tooling beyond what its browser-focused part covers.

If your goal is to learn JavaScript from the ground up, start with the tutorial. Keep a manual open for lookups, and treat the specification as the final authority when you need to know exactly what the language does.

What is The Modern JavaScript Tutorial (javascript.info)?

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 and new, optional chaining, symbols, object-to-primitive conversion
  • Data types — primitives, numbers, strings, arrays, array methods, iterables, Map and Set, WeakMap and WeakSet, 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 — Proxy and Reflect, 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:

  1. Explanation — prose that describes the concept and its behavior.
  2. Examples — runnable code illustrating the concept.
  3. 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.

What Topics Does The Modern JavaScript Tutorial Cover?

The Modern JavaScript Tutorial (javascript.info) covers JavaScript in three parts: the core language, browser APIs (Document, Events, Interfaces), and additional articles. It starts from scratch and moves to advanced concepts like OOP, so it fits beginners who want a structured path and intermediate developers filling specific gaps. The site states it concentrates on the language itself with minimal environment-specific notes in Part 1.

Part 1: The JavaScript language

This is the largest section and the one most learners come for. It is organized as a progression rather than an alphabetical reference.

Getting started

  • An Introduction to JavaScript
  • Manuals and specifications
  • Code editors
  • Developer console

JavaScript Fundamentals

  • Hello, world!
  • Code structure
  • The modern mode, "use strict"
  • Variables
  • Data types
  • Interaction: alert, prompt, confirm
  • Type Conversions
  • Basic operators, maths
  • Comparisons
  • Conditional branching: if, '?'
  • Logical operators
  • Nullish coalescing operator '??'
  • Loops: while and for
  • The "switch" statement
  • Functions
  • Function expressions
  • Arrow functions, the basics
  • JavaScript specials

Code quality

  • Debugging in the browser
  • Coding Style
  • Comments
  • Ninja code
  • Automated testing with Mocha
  • Polyfills and transpilers

Objects: the basics

  • Objects
  • Object references and copying
  • Garbage collection
  • Object methods, "this"
  • Constructor, operator "new"
  • Optional chaining '?.'
  • Symbol type
  • Object to primitive conversion

Data types

  • Methods of primitives
  • Numbers
  • Strings
  • Arrays
  • Array methods
  • Iterables
  • Map and Set
  • WeakMap and WeakSet
  • Object.keys, values, entries
  • Destructuring assignment
  • Date and time
  • JSON methods, toJSON

Advanced working with functions

  • Recursion and stack
  • Rest parameters and spread syntax
  • Variable scope, closure
  • The old "var"
  • Global object
  • Function object, NFE
  • The "new Function" syntax
  • Scheduling: setTimeout and setInterval
  • Decorators and forwarding, call/apply
  • Function binding
  • Arrow functions revisited

Object properties configuration

  • Property flags and descriptors
  • Property getters and setters

Prototypes, inheritance

  • Prototypal inheritance
  • F.prototype
  • Native prototypes
  • Prototype methods, objects without proto

Classes

  • Class basic syntax
  • Class inheritance
  • Static properties and methods
  • Private and protected properties and methods
  • Extending built-in classes
  • Class checking: "instanceof"
  • Mixins

Error handling

  • Error handling, "try...catch"
  • Custom errors, extending Error

Promises, async/await

  • Introduction: callbacks
  • Promise
  • Promises chaining
  • Error handling with promises
  • Promise API
  • Promisification
  • Microtasks
  • Async/await

Generators, advanced iteration

  • Generators
  • Async iteration and generators

Modules

  • Modules, introduction
  • Export and Import
  • Dynamic imports

Miscellaneous

  • Proxy and Reflect
  • Eval: run a code string
  • Currying
  • Reference Type

Part 2: Browser — Document, Events, Interfaces

This part moves from the language into the browser environment. It covers the DOM, event handling, and browser interfaces. If you only need language fundamentals, you can skip this part; if you plan to build web pages, it is the natural next step after Part 1.

Part 3: Additional articles

A smaller collection of extra material that sits outside the two main tracks.

How to decide if it fits your stage

Your situation Where to start
Never written JavaScript Part 1, from "An Introduction to JavaScript"
Know basics, weak on objects/closures Part 1, "Objects: the basics" and "Advanced working with functions"
Comfortable with syntax, shaky on async Part 1, "Promises, async/await"
Need DOM and events for page work Part 2
Want class-based and prototype patterns Part 1, "Prototypes, inheritance" and "Classes"

The stated goal is to go from scratch to advanced concepts like OOP, so the intended reading order is top to bottom within Part 1. The trade-off is depth over brevity: the material is described as simple but detailed, with examples and tasks, which means more reading time than a quick reference. If you need a fast lookup for a single method, a language reference may serve you better; if you want the concept explained with tasks to practice, this structure is the point.

How to Study The Modern JavaScript Tutorial Effectively

The Modern JavaScript Tutorial (javascript.info) is organized into three sequential parts, and the most effective way to study it is to follow that order rather than jumping around: start with "The JavaScript language," then move to "Browser: Document, Events, Interfaces," and finish with "Additional articles." Read each section's explanation, run the examples yourself, and complete the tasks before moving on. This approach works whether you're a beginner or an experienced developer filling gaps, because the tutorial builds each concept on the previous one.

Follow the three-part structure in order

The site's own table of contents defines the learning path:

Part Focus When to study it
Part 1: The JavaScript language The language itself, with minimal environment-specific notes First — this is the foundation
Part 2: Browser: Document, Events, Interfaces How JavaScript works in the browser After Part 1
Part 3: Additional articles Supplementary topics Last, or as needed

The tutorial explicitly states that Part 1 concentrates on the language itself "with the minimum of environment-specific notes." That's a signal: don't jump into DOM manipulation before you're comfortable with functions, objects, and closures.

Work through Part 1 in its given sequence

Part 1 is long, but its internal order is deliberate. A practical progression:

  1. Introduction — "An Introduction to JavaScript," "Manuals and specifications," "Code editors," "Developer console." Set up your environment here so you can actually run code.
  2. JavaScript Fundamentals — "Hello, world!", code structure, "use strict", variables, data types, type conversions, operators, comparisons, conditionals, logical operators, nullish coalescing, loops, switch, functions, function expressions, arrow functions.
  3. Code quality — debugging, coding style, comments, automated testing with Mocha, polyfills and transpilers.
  4. Objects: the basics — objects, references and copying, garbage collection, this, constructors and new, optional chaining, symbols, object-to-primitive conversion.
  5. Data types — primitives, numbers, strings, arrays, array methods, iterables, Map and Set, WeakMap and WeakSet, Object.keys/values/entries, destructuring, Date and time, JSON.
  6. Advanced working with functions — recursion, rest/spread, scope and closure, var, the global object, function object and NFE, new Function, setTimeout/setInterval, decorators and forwarding, call/apply, function binding.
  7. Object properties, prototypes, classes — property flags and descriptors, getters/setters, prototypal inheritance, F.prototype, native prototypes, class syntax, inheritance, static and private members, instanceof, mixins.
  8. Error handling, promises, async/await, generators, modules — try...catch, custom errors, callbacks, promises, chaining, error handling with promises, Promise API, promisification, microtasks, async/await, generators, async iteration, modules and dynamic imports.
  9. Miscellaneous — Proxy and Reflect, eval, currying, reference type.

Don't skip the "More..." links — they expand each cluster with additional depth.

Use the examples and tasks as active practice

The tutorial's description emphasizes "simple, but detailed explanations with examples and tasks." Reading alone won't build fluency. For each section:

  • Type out the examples rather than copy-pasting. The act of writing reveals syntax you thought you knew.
  • Attempt the tasks before checking solutions. The tasks are where the tutorial tests whether you actually understood the mechanism.
  • Verify in the developer console. The Introduction covers the developer console specifically so you can experiment immediately.

If a task feels impossible, that's usually a sign an earlier section needs review — not that you should push forward.

Move to Part 2 only after Part 1 feels solid

Part 2 covers "Browser: Document, Events, Interfaces." This is where you apply the language to real pages. The dependency is real: event handling and DOM manipulation assume you're comfortable with functions, closures, objects, and this. Studying Part 2 too early means fighting two problems at once.

When you do start Part 2, keep the browser open alongside the tutorial and reproduce each interface example on a blank page.

Loop back when advanced topics don't land

Advanced sections — closures, prototypes, promises, async/await, generators — are where most learners stall. The tutorial's structure makes backtracking easy because each topic links conceptually to earlier ones. If async/await doesn't click, the productive move is to revisit "Introduction: callbacks," "Promise," and "Promises chaining" before returning. The same applies to prototypes: "Prototypal inheritance" and "F.prototype" precede the class chapters for a reason.

A realistic study pattern

  • Study in focused sessions on one topic cluster at a time.
  • Finish the tasks for a section before starting the next.
  • Keep a personal notes file with the mechanisms that surprised you.
  • Re-read "Code quality" material (debugging, testing) periodically — it pays off across every later section.

The tutorial is comprehensive by design, so progress will feel slow in the middle sections. That's expected; the sequence is built to make later topics depend on earlier ones rather than repeat them.

Website Overview

An established domain and managed infrastructure suggest continuity of operations and may support dependable delivery, although neither guarantees service quality. Several search or sharing settings need attention. Together they may make snippets, preview images or preferred URLs less consistent across platforms.

Domain and Registration

Registered in 2001, this domain has about 25 years of history. That suggests continuity, although ownership and purpose may have changed. Transfer-protection status is present, helping reduce the risk of unauthorized domain transfers. The registrar is Cloudflare, Inc, a widely used domain service provider. The domain uses the common .info extension, which is not an independent safety signal.

DNS and Email

Nameservers are provided by Cloudflare, indicating managed DNS hosting. MX records point to the Google Workspace email service. No CNAME was found; the observed records resolve directly to addresses. SPF and DMARC are configured. DKIM status is unknown. TXT records include verification markers for Google. Such markers may also remain after a service stops being used.

TLS and Certificates

The public key uses EC with 256 bits. The server supplied a complete certificate chain. No organization name is present in the certificate; the available fields are consistent with domain validation. The certificate was issued within the Google Trust Services cloud or CDN ecosystem. The certificate's total validity is about 90 days, consistent with a short renewal cycle.

HTTP and Browser Security

The response lacks these common security headers: HSTS, CSP, Referrer-Policy, Permissions-Policy. No X-Powered-By header was found, reducing one common source of backend fingerprinting information. The cf-ray response header indicates a CDN or caching proxy in the delivery path. No obvious internal addresses or debug information were found in the headers. The Server header identifies cloudflare without an exact version.

Technology Stack Analysis

The public page identifies Cloudflare without precise versions, leaving fewer clues for version-specific scanning.

Search and Social Sharing

The meta description has 166 characters and may be shortened in search results. Open Graph is partially configured; og:description, og:type is missing. Twitter Card metadata is configured. The title has 30 characters, within a common display range. The observed directives allow indexing and link following.

Hosting and Email

DNSCloudflare
HostingCloudflare
EmailGoogle Workspace
Approximate IP geolocation (inferred; a CDN or proxy may differ from the origin server) Location unknown Inferred 104.26.12.17

Registration details

RDAP / WHOIS

RegistrarCloudflare, Inc
Registered2001-09-21
Expires2027-09-21
Domain statusclient transfer prohibited
Nameserversdamon.ns.cloudflare.com、ines.ns.cloudflare.com
DNSSECunsigned

DNS records

DNS

TypeNameValueTTLPriority
Ajavascript.info104.26.12.17300—
Ajavascript.info104.26.13.17300—
Ajavascript.info172.67.74.41300—
AAAAjavascript.info2606:4700:20::681a:c11300—
AAAAjavascript.info2606:4700:20::681a:d11300—
AAAAjavascript.info2606:4700:20::ac43:4a29300—
MXjavascript.infoaspmx.l.google.com3001
MXjavascript.infoalt1.aspmx.l.google.com3005
MXjavascript.infoalt2.aspmx.l.google.com3005
MXjavascript.infoaspmx2.googlemail.com30010
MXjavascript.infoaspmx3.googlemail.com30010
MXjavascript.infoaspmx4.googlemail.com30010
MXjavascript.infoaspmx5.googlemail.com30010
NSjavascript.infodamon.ns.cloudflare.com86400—
NSjavascript.infoines.ns.cloudflare.com86400—
TXTjavascript.infogoogle-site-verification=OPB5BvCtqM2C2mOORtOj07XW_sgzSq2aW7r63B5s6yY300—
TXTjavascript.infov=spf1 include:amazonses.com include:_spf.google.com include:mail.zendesk.com ~all300—
TXTjavascript.infoyandex-verification: 9ecaa357f86ab13e300—
DMARC_dmarc.javascript.infov=DMARC1;p=reject;300—

TLS and certificates

TLS / SSL

AssessmentNormal configuration
Supported protocolsTLSv1.2
Negotiated protocolTLSv1.2
Certificate subjectjavascript.info
IssuerGoogle Trust Services
Valid until2026-11-17T23:27 · Remaining when checked: 47 days
Verification detailsCertificate trust: Passed · Hostname match: Passed

HTTP response headers

HTTP

HeaderValue
content-typetext/html; charset=utf-8
servercloudflare
x-frame-optionssameorigin
x-content-type-optionsnosniff

Identified technologies

Cloudflare

Pages, Search and Sharing

Meta descriptionModern JavaScript Tutorial: simple, but detailed explanations with examples and tasks, including: closures, document and events, object oriented programming and more.
Canonical URLhttps://javascript.info/
LanguageEnglish (default)
Twitter Cardsummary
All bots 0 allowed · 5 disallowed
  • Disallow/node/
  • Disallow/users/
  • Disallow/content/
  • Disallow/play/
  • Disallow/profile/

No sitemaps found

User reviews (0)

  • No reviews yet.