JavaScript
The language of the web — make pages interactive and build apps that run anywhere.
JavaScript runs in every browser and on servers with Node.js. Start from zero — variables, types, decisions, loops and functions — then master arrays, objects, the DOM, events and forms. Go on to classes, modules, asynchronous code with promises and async/await, talking to APIs with fetch, and finish with generators, debugging, Node.js, TypeScript and professional best practices. Everything is modern ES2023+ JavaScript.
34 lessons ~8 h 38 min Beginner → Advanced
What you’ll learn
- Run JavaScript in the browser console and with Node.js, and debug it with DevTools
- Use let/const, types, operators and control flow without falling into coercion traps
- Write functions, closures and callbacks, and understand scope, hoisting and `this`
- Transform data fluently with array methods, destructuring, spread, Map and Set
- Build interactive pages: select and create DOM elements, handle events and validate forms
- Model data with classes, prototypes and inheritance, and organise code into ES modules
- Write asynchronous code with promises and async/await, and explain the event loop
- Call REST APIs with fetch, handle JSON and errors, and persist data with localStorage
- Use npm and Node.js tooling, and add type safety with TypeScript
- Write fast, readable, maintainable JavaScript that follows modern best practices
Syllabus
6 modules · 34 lessons- 1Introduction to JavaScriptWhere JavaScript runs, the browser console, Node.js and adding scripts to a page. 12 min
- 2Variables & typeslet, const and var, the primitive types, typeof, and === vs ==. 14 min
- 3Operators & type coercionArithmetic, comparison and logical operators — and how JavaScript converts types behind your back. 14 min
- 4Strings & template literalsQuotes, escapes, template literals and the string methods you will use every day. 14 min
- 5Conditionalsif/else, the ternary operator, switch, and truthy/falsy values in decisions. 12 min
- 6Loopsfor, while, do…while, for…of, for…in, break and continue. 13 min
- 7FunctionsDeclarations, expressions, arrow functions, default and rest parameters, spread and callbacks. 16 min
- 8Scope, hoisting & closuresBlock, function and global scope, hoisting and the temporal dead zone, and closures. 16 min
- 9Arrays & objects: the basicsCreate, read, update and loop over arrays and objects — JavaScript’s two workhorse structures. 14 min
- 10Array methodsmap, filter, reduce, find, some/every, sort and the new non-mutating toSorted & friends. 18 min
- 11Objects in depthShorthand, computed keys, methods, Object.keys/entries, copying, freezing and structuredClone. 16 min
- 12Destructuring & spreadUnpack arrays and objects, set defaults, rename, and copy or merge with ... spread and rest. 14 min
- 13The DOM: select, create & modifyFind elements, change text, classes and attributes, create and remove nodes, and handle a first click. 16 min
- 14Events & delegationThe event object, bubbling and capturing, delegation, removing listeners and keyboard events. 16 min
- 15Forms & validationRead form data, built-in HTML validation, the Constraint Validation API and custom checks. 16 min
- 16localStorage & sessionStoragePersist data in the browser, store objects as JSON and handle errors and the storage event. 12 min
- 17`this`, call, apply & bindHow `this` is decided, why arrow functions differ, and controlling it with call, apply and bind. 15 min
- 18Prototypes, classes & inheritanceThe prototype chain, class syntax, constructors, getters/setters, static and #private members, extends and super. 20 min
- 19Error handlingtry/catch/finally, throwing errors, custom error classes, error.cause and defensive code. 14 min
- 20Modules: import & exportNamed and default exports, ES modules in the browser and Node, dynamic import() and top-level await. 14 min
- 21Map, Set, WeakMap & WeakSetKeyed collections, unique values, the new Set methods and when weak references help. 14 min
- 22Regular expressionsPatterns, flags, character classes, groups, named captures and replace/matchAll. 18 min
- 23Dates & IntlCreate and compare Dates, time zones, and format dates, numbers and currencies with Intl. 15 min
- 24Modern JavaScript featuresOptional chaining, nullish coalescing, logical assignment, at(), Object.groupBy and more. 14 min
- 25The event loopThe call stack, task and microtask queues, and why setTimeout(fn, 0) is not instant. 15 min
- 26CallbacksAsynchronous callbacks, error-first callbacks in Node and why "callback hell" happens. 12 min
- 27PromisesCreate and chain promises, handle errors, and combine them with all, allSettled, race and any. 18 min
- 28async & awaitWrite asynchronous code that reads top-to-bottom, handle errors, and run tasks in parallel. 16 min
- 29fetch, APIs & JSONCall REST APIs with fetch, send and parse JSON, handle HTTP errors, timeouts and CORS. 18 min
- 30Iterators & generatorsThe iteration protocol, making objects iterable, function* generators and async iteration. 16 min
- 31Debugging JavaScriptconsole power tools, breakpoints, the debugger statement, stack traces and debugging Node. 14 min
- 32Node.js & npm basicsRun scripts with Node, use built-in modules, manage packages with npm and write npm scripts. 18 min
- 33Introduction to TypeScriptTypes, interfaces, unions, generics and setting up tsc — JavaScript that catches bugs before you run it. 18 min
- 34Performance & best practicesWrite clean, fast code: immutability, avoiding layout thrashing, debouncing, linting and security basics. 16 min