Course 03 · Core

JavaScript
The part that answers back.

Values, functions, the DOM, events and asynchronous work — written so you can debug it later.

32Lessons
≈ 6hReading
32Playable now
TypesFunctionsDOMEventsAsyncModules

0 of 32 lessons finished — nothing yet

The syllabus

32 lessons,
in the order they build on each other.

Start lesson one ↗
01

Your first script

Where JavaScript runs, how to load it, and the console as your main instrument.

≈ 9 min
02

Values and variables

const, let, the primitive types, and why var is not in this course.

≈ 11 min
03

Types and conversion

typeof, truthiness, == against ===, NaN, and converting on purpose.

≈ 12 min
04

Strings

Template literals, slicing, searching, replacing and formatting for people.

≈ 11 min
05

Numbers and dates

Floating point surprises, rounding, Math, Date, and Intl for real formatting.

≈ 11 min
06

Operators

Arithmetic, comparison, logical, nullish coalescing and short-circuit evaluation.

≈ 9 min
07

Control flow

if, ternaries, switch, loops, and returning early instead of nesting.

≈ 10 min
08

Functions

Declarations, expressions, arrows, parameters, defaults, rest and returning values.

≈ 12 min
09

Scope and closures

Block scope, hoisting, closures, and the counter that explains all of them.

≈ 12 min
10

this and binding

What this refers to in each call shape, and why arrow functions are different.

≈ 11 min
11

Arrays

map, filter, reduce, find, sort, spread — and changing versus returning.

≈ 13 min
12

Objects

Properties, nesting, destructuring, spread, optional chaining and references.

≈ 12 min
13

JSON

parse and stringify, what survives the round trip, and handling malformed input.

≈ 9 min
14

Classes and prototypes

Constructors, methods, fields, extends, and the prototype chain underneath.

≈ 12 min
15

Modules

import and export, default versus named, dynamic import and module scope.

≈ 10 min
16

The DOM: finding things

querySelector, collections, traversal, and what the DOM actually is.

≈ 11 min
17

The DOM: changing things

textContent, classList, attributes, dataset, styles and building nodes safely.

≈ 12 min
18

Events

Listeners, the event object, bubbling, delegation, preventDefault and removal.

≈ 13 min
19

Forms in JavaScript

Reading values, FormData, validity, and submitting without reloading.

≈ 12 min
20

The event loop

The stack, the queue, microtasks, and why a long loop freezes the page.

≈ 11 min
21

Promises

States, then and catch, chaining, all, allSettled and race.

≈ 12 min
22

async and await

Writing asynchronous code that reads in order, and handling failure in it.

≈ 12 min
23

Fetch and APIs

Requests, JSON, status codes, headers, aborting, and errors that fetch does not throw.

≈ 13 min
24

Storing state

localStorage, sessionStorage, JSON round-trips and failing safely when it is blocked.

≈ 10 min
25

Timers and animation

setTimeout, setInterval, requestAnimationFrame, debounce and throttle.

≈ 10 min
26

Observers

IntersectionObserver, ResizeObserver and MutationObserver instead of scroll handlers.

≈ 10 min
27

Errors and debugging

try/catch, throwing well, reading a stack trace and using breakpoints.

≈ 11 min
28

Regular expressions

The pieces you will actually use, groups, flags, and when not to use one.

≈ 11 min
29

Copying and equality

References, shallow and deep copies, structuredClone and comparing objects.

≈ 10 min
30

Writing code you can read later

Naming, small functions, pure functions, early returns and comments worth keeping.

≈ 11 min
31

Safety in the browser

innerHTML and XSS, escaping, why secrets cannot live in front-end code.

≈ 11 min
32

Tooling

npm, bundlers, what a build step does, source maps and linting.

≈ 10 min