Topics

1

Running JavaScript in the browser

Run JS in the console and in a page.

Free
2

let, const and var

Declare variables and know when to use each.

Free
3

Types, coercion and == vs ===

Predict coercion surprises.

Free
4

Conditions and ternary

Branch with if/else, switch and ?: .

Full course
5

Loops

Use for, while, for...of and for...in.

Full course
6

Functions and arrow functions

Write declarations, expressions and arrow functions.

Full course
7

Arrays

Add, remove and find items.

Full course
8

map, filter and reduce

Transform data without loops.

Free
9

Objects

Model things with properties and methods.

Full course
10

Destructuring, spread and rest

Unpack and copy data concisely.

Full course
11

Scope and hoisting

Understand block, function and global scope and hoisting.

Full course
12

Closures

See how inner functions remember outer variables.

Full course
13

The this keyword

Predict what this refers to in different calls.

Full course
14

The DOM: selecting and changing elements

Find elements and change text, styles and classes.

Free
15

Events

Respond to clicks, input and key presses.

Full course
16

Mini project: to-do list

Combine DOM, events and arrays.

Full course
17

Call stack and event loop

Understand how JS runs async work on one thread.

Full course
18

Callbacks and setTimeout

Pass functions to run later.

Full course
19

Promises

Chain async work with then/catch.

Full course
20

async/await

Write async code that reads like sync code.

Full course
21

fetch and JSON APIs

Call a web API and show the data.

Full course
22

Classes and prototypes

Use class syntax and understand the prototype chain.

Full course
23

Project: expense tracker with localStorage

Build a small app that saves data in the browser.

Full course