Modern ES Features — Senior Interview Prep
The post-ES2020 JavaScript a senior is expected to know on sight. Not “what is let” — the features added 2020-2025 that change how code is written: optional chaining, private fields, top-level await, generators, modern array methods, Temporal, Promise utilities, and the upcoming using resource management.
Files
Quick “did you know” inventory
| Year | Notable |
|---|---|
| ES2020 | optional chaining ?., nullish coalescing ??, BigInt, Promise.allSettled, dynamic import() |
| ES2021 | logical assignment ??=/||=/&&=, String.replaceAll, Promise.any, WeakRef/FinalizationRegistry |
| ES2022 | top-level await, private fields #x, static class blocks, at() on Array/String, Object.hasOwn, cause on Error |
| ES2023 | immutable array methods (toSorted/toReversed/toSpliced/with), findLast/findLastIndex |
| ES2024 | Promise.withResolvers, Object.groupBy/Map.groupBy, Atomics.waitAsync, ArrayBuffer.prototype.transfer, Array.fromAsync |
| Stage 3/4 (rolling) | Temporal, decorators, import attributes (with), using/await using, set methods |
For your tsconfig target, ES2022 is a safe modern default; ES2023 if your support matrix allows.
Cross-references
- TypeScript-specific features: ../04_typescript/
- Async / Promises in depth: ../03_javascript_core/async_js/
- Iterators interact with iteration protocols throughout: 04_iterators_and_generators.md