JavaScript
The language of the web — interactive sites and apps
Learn JavaScript from scratch: from variables, conditions, loops and functions to arrays, objects, the DOM, asynchronous code, classes and modules. In every lesson you run the code right in your browser and see the result at once. By the end of the course you will be able to write your own programs that work with data and make web pages interactive.
Course content
JavaScript basics
BeginnerWrite your first program and learn variables, data types, operators and working with strings.
- 1What is JavaScript? Your first programFind out what JavaScript is and where it runs, and write your first program with `console.log`.10 min
- 2Variables and data typesLearn to create variables with `let` and `const`, name them well and recognise JavaScript's basic data types.12 min
- 3Operators and type coercionLearn arithmetic, comparison and logical operators, and understand why `'5' + 3` gives `'53'`.14 min
- 4Strings and template literalsLearn to work with text: accessing characters, useful methods and template literals that put variables into text with ease.13 min
Conditions, loops and functions
BeginnerTeach your program to make decisions, repeat work and split code into reusable functions.
- 5Conditions: if, else and switchTeach your program to make decisions: `if`, `else if`, `else`, the ternary operator and `switch`.13 min
- 6Loops: for, while and for...ofLearn to repeat work many times: `for`, `while`, `do...while`, `for...of`, plus `break` and `continue`.14 min
- 7Functions and arrow functionsSplit code into reusable pieces: declaring functions, parameters, `return`, default values, arrow functions and scope.15 min
Data and the browser
IntermediateManage data with arrays, objects and JSON, catch errors and bring pages to life through the DOM.
- 8Arrays and array methodsLearn to work with lists: adding and removing items, and transforming data with `map`, `filter`, `find` and `reduce`.16 min
- 9Objects, destructuring and spreadKeep all the properties of one thing together in an object, unpack them with destructuring, and copy and merge with `...`.17 min
- 10JSON and error handlingSend and receive data in JSON format, and catch errors with `try...catch` so your program doesn't crash.15 min
- 11The DOM and eventsControl a page with JavaScript: find elements, change them, create new ones and respond to clicks and typing.18 min
Modern JavaScript
AdvancedGet to know asynchronous code, classes, modules and the tools professional developers use.
- 12Asynchronous JavaScript: callbacks, promises, async/awaitLearn to do work that involves waiting without freezing the program: `setTimeout`, callbacks, promises and `async`/`await`.20 min
- 13Classes and inheritanceCreate objects with the same structure using classes: constructors, methods, inheritance with `extends`, private fields, getters and static methods.18 min
- 14Modules and modern toolingSplit code into files with `import` and `export`, add packages with npm and meet the tools professionals use: Vite, ESLint, Prettier.16 min
JavaScript in depth
AdvancedLearn how the language works inside: closures, prototypes, the event loop, generators, functional style, errors, regular expressions and performance.
- 15Scope and closuresUnderstand how JavaScript finds variables: lexical scope, closures, IIFE and the module pattern — plus `this`, `bind`, `call` and `apply`.22 min
- 16Prototypes and inheritanceSee what really happens behind `class`: the prototype chain, `Object.create`, constructor functions and why classes are called syntactic sugar.20 min
- 17The event loop and concurrencyLook inside the engine: the call stack, the task queue and the microtask queue. Learn to predict the exact order of `setTimeout`, promises and `await`.22 min
- 18Iterators, generators and symbolsFind out what makes `for...of` and spread work: the iteration protocol, `Symbol.iterator`, generator functions with `yield`, lazy sequences and symbols as unique keys.20 min
- 19Functional programmingWrite predictable code: pure functions, immutability, higher-order functions, currying, composition and powerful `reduce` patterns.22 min
- 20Error handling and debuggingGo beyond `try...catch`: built-in error types, custom error classes with `cause`, reading stack traces, the `debugger` statement and console methods that make bugs easy to find.22 min
- 21Regular expressionsSearch, validate and transform text with regular expressions: character classes, quantifiers, anchors, groups, flags and the `test`, `match`, `matchAll` and `replace` methods.22 min
- 22Performance and memoryMake code fast and lean: the Big-O cost of array, `Map` and `Set` operations, debounce and throttle, memoisation, garbage collection and memory leaks.22 min
Professional JavaScript
AdvancedNode.js, REST APIs, React, testing and security — the tools and habits you need for real projects.
- 23Node.js basicsRun JavaScript outside the browser: the Node.js runtime, CommonJS and ES modules, npm and `package.json`, and working with files through `fs` and `path`.22 min
- 24fetch and REST APIsTalk to servers: how HTTP works, REST resources and methods, `fetch` with JSON, status codes, error handling, timeouts with `AbortController` and parallel requests.24 min
- 25React fundamentalsBuild interfaces from components: JSX, props, state with `useState`, side effects with `useEffect` and lists with keys — the core ideas of the most popular UI library.24 min
- 26Testing JavaScriptProve that your code works: unit tests with Vitest and Jest, `describe`/`it`/`expect`, the main matchers, testing async code and errors, mocks and spies, and what coverage really means.22 min
- 27Security and best practicesProtect users and code: XSS and CSRF, input validation, keeping secrets out of the browser, ESLint and Prettier, and moving to TypeScript step by step.24 min