Stop Hand-Rolling Formatters: The Intl APIs You're Underusing
Intl.NumberFormat, RelativeTimeFormat, ListFormat, and Segmenter replace most hand-rolled formatting and i18n code — here's how to actually use them.
Category
10 articles
Intl.NumberFormat, RelativeTimeFormat, ListFormat, and Segmenter replace most hand-rolled formatting and i18n code — here's how to actually use them.
Why the legacy Date object keeps causing bugs, what Temporal's PlainDate, ZonedDateTime, and Instant types fix, and how to plan a real migration.
A practical tour of the regex features worth mastering — named groups, lookaround, sticky matching, Unicode properties — and when to reach for a parser instead.
How WeakMap, WeakRef, and FinalizationRegistry actually work, where each one earns its place, and why most of them belong in library code, not app code.
A practical look at where ESM and CommonJS interop still breaks in 2026, and how to pick a module format for a new library or app without regret.
Real-world Proxy traps for validation, reactivity, and guardrails, plus why Reflect exists and when skipping it silently breaks your object.
How the iterator protocol and generator functions work under the hood, and where they solve real problems like pagination and lazy sequences.
A practical guide to choosing between Promise.all, allSettled, race, and any, with the failure modes each one is actually designed to handle.
Where closures actually show up in production JavaScript — memoization, private state, React hooks, and the memory leaks they quietly cause.
A precise walkthrough of how the JS event loop orders microtasks and macrotasks, with the interleaving bugs that actually bite in production code.