HTML Complete Course
Build semantic, accessible web pages from your first file to native dialogs, safe embeds and fast loading.
- Beginner
- 25 lessons
- 10 hours
Build semantic, accessible web pages from your first file to native dialogs, safe embeds and fast loading.
Style and lay out modern websites, from your first rule to cascade layers, Grid and scroll-driven animation.
Build pages that work on every screen, from a 320 pixel phone to a wide desktop monitor.
Build and test websites that disabled people can use, from alt text to WCAG 2.2 audits.
Learn modern JavaScript from your first script to closures, async code, modules and the event loop, with projects you build as you go.
Separate logic from the DOM, pure functions, dependency injection and small modules that are easy to test.
What V8 and other engines do with your code, optimisation and deoptimisation, and what that means for everyday code.
Unique property keys with Symbol, and customising language behaviour with Symbol.iterator and friends.
When to use Map and Set instead of objects and arrays, and what the weak versions are for.
Cancel work with AbortController, add timeouts, retry with exponential backoff and avoid race conditions.
Pattern syntax, flags, testing and replacing, named groups, and when a regex is the wrong tool.
API design, defaults and options objects, error messages, types, versioning and publishing to npm.
Schedule work, cancel timers, and animate smoothly with requestAnimationFrame.
Why changing a copied object changes the original, comparing objects, and writing code that avoids accidental mutation.
The prototype chain behind objects and classes, Object.create, and how property lookup works.
How the call stack, task queue and microtask queue decide run order, with exercises.
Coordinate several promises, handle partial failure, and set timeouts with race.
The iteration protocol, making objects iterable, and generator functions for lazy sequences.
How events travel through the DOM, stopping propagation, and handling many elements with one listener.
Why JavaScript is asynchronous, callback functions, and the problems that led to promises.
Create and consume promises, chaining with then, error handling with catch, and finally.
Write asynchronous code that reads top to bottom, handle errors with try and catch, and run tasks in parallel.
Request JSON from an API with fetch, check response status, and show loading and error states.
Read error messages, log effectively, set breakpoints and step through code in browser DevTools.
Split code into modules with named and default exports, use modules in the browser, and dynamic import.