JavaScript Complete Course
Learn modern JavaScript from your first script to closures, async code, modules and the event loop, with projects you build as you go.
- Beginner
- 54 lessons
- 23 hours
Learn modern JavaScript from your first script to closures, async code, modules and the event loop, with projects you build as you go.
Consume streams of async data with async iterators and for await…of, including paginated APIs.
Computed properties with getters and setters, and intercepting object operations with Proxy.
Garbage collection basics, common leak sources such as listeners and timers, and finding leaks in DevTools.
Limit how often handlers run, batch DOM reads and writes, and keep interactions responsive.
A reference of ECMAScript features from ES2015 onwards, what each solves, and how to check support.
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.