Event loop and async, closures and this, modules, collections and iterators, memory, dates and Intl, ES2024 to ES2026.
Pages
- The event loop and asyncTasks, microtasks and rendering, how await desugars, timer semantics, unhandled rejections, cancellation with AbortController, Promise combinators, breaking up long tasks, and the Node differences.
- Closures, scope, this and prototypesLexical scope and the temporal dead zone, what a closure captures and what it keeps alive, the four rules for this, arrow functions and class fields, prototypes underneath classes, private fields, descriptors, Proxy and Reflect, and equality.
- Modules and bundlingESM semantics — static structure, live bindings, singleton modules, cycles and top-level await — versus CommonJS, Node interop and package exports, tree shaking and code splitting, and what Vite and Rolldown do with all of it.
- Collections, iterators and generatorsMap, Set and their 2025 methods, WeakMap and WeakRef, the iteration protocol, generators and async iteration, iterator helpers, grouping and upsert, change-by-copy arrays, typed arrays and base64, and web streams.
- Memory and performance in JavaScriptHow garbage collection decides what lives, the leak patterns that survive it, finding retainers with heap snapshots, and the performance model — Big-O in practice, hot paths, long tasks, and measuring before optimising.
- Modern JavaScript, ES2024 to ES2026What each of the last three editions added, what is finished for ES2027, the stage 3 proposals worth knowing by name, and how Baseline, build targets and polyfills decide what you can ship unpolyfilled.
- Dates, numbers and IntlWhy Date is a trap and how to store and format time correctly across server and client, Temporal, the Intl formatters for dates, numbers, currencies, plurals, lists and relative time, floating point and money, and caching formatters.
Notes for the whole section