obj?.a?.b safely reads through possibly-missing properties, returning undefined instead of throwing. x ?? fallback defaults only on null/undefined. Also new: BigInt, Promise.allSettled, globalThis, and dynamic import(). Optional chaining alone eliminated mountains of defensive && code.
Power-ups you unlock
Optional chaining: obj?.a?.b (no throw)
Nullish coalescing: x ?? fallback
BigInt, Promise.allSettled, globalThis
Dynamic import() standardized
The Mutator attacks — common mistakes
Overusing ?. and hiding real null bugs
Mixing ?? with && / || without parens
Forgetting ?.() for optional method calls
Boss battleSafely read a deeply nested property with ?. and default it with ??.