Advanced Language
Iterators, generators, Map and Set, weak references, symbols, Proxy and Reflect, tagged templates, memory and garbage collection, and strict mode.
This phase opens up the machinery under the JavaScript you already write. Why does for...of work on arrays, strings and Maps but not on plain objects? How can a function pause in the middle and continue later? What does a Map give you that an object doesn't, and when does the engine free memory you no longer use? Each answer is a protocol or a built-in object you can use yourself.
You'll learn the iteration protocol and generators (lazy, even endless, sequences), the keyed collections Map, Set, WeakMap, WeakSet and WeakRef, symbols and the well-known symbols that let your objects hook into the language, Proxy and Reflect (the idea behind reactive frameworks), and tagged templates (how libraries build safe HTML and SQL).
The phase ends with what senior engineers get asked about: how garbage collection decides what to free, the four classic memory leaks in browser code and how to find them in DevTools, and what strict mode changes. It builds on closures (Phase 3), prototypes and classes (Phase 7), the event loop (Phase 10) and modules (Phase 12).
Practise this phase
Hands-on exercises: write the code, see your page live, and press Check to have it tested automatically.