Fuente
Radio Kottans | ECMAScript 2026: JavaScript дорослішає.Щороку JavaScript непомітно змі...
979 Vistas/Alcance
2026-02-02 17:03
Mensaje №846
ECMAScript 2026: JavaScript дорослішає.Щороку JavaScript непомітно змінюється. Поки ми обговорюємо черговий фреймворк, десь у специфікації ECMA-262 тихо лагодять речі, через які ми роками писали костилі. Версія ECMAScript 2026 — саме про це: менше болю, менше lodash, більше «працює з коробки».Головний вайб релізу — мова починає захищати розробника від власних помилок.1. Масиви більше не зраджуютьСкільки разів ти ловив баг через sort() або reverse(), які змінюють вихідний масив? У React це класика: відсортував — і стан поїхав.Тепер є ось такі методи:users.toSorted()users.toReversed()
Оригінал цілий, карма чиста. Для джуна — мінус цілий клас загадкових багів, для мідла — код ближче до нормального функціонального стилю.2. Set нарешті став кориснимРаніше порівняти дві множини = написати цикл або тягнути бібліотеку. Тепер:a.union(b)a.intersection(b)a.difference(b)
Фільтри, теги, права доступу — усе робиться нативно й читабельно. Мінус самописні утиліти з папки helpers.3. Регулярки без пастокДинамічні RegExp — джерело сюрпризів і дір у безпеці. З’явився:RegExp.escape(userInput)
Ввів користувач .* — і застосунок не зламався. Маленька функція, але економить години дебагу.4. Ітератори як у дорослихЗ ними тепер можна працювати майже як із масивами:iterator.map(x => x * 2).take(3).toArray()
Крок до більш читабельного і продуктивного JS.5. Асинхронність стала чистішаЗамість обгорток із try/catch:Promise.try(() => fn())
Дрібниця, а код стає значно зручніше.6) Temporal: тепер з датами можна жити, а не виживати.Коротко про те, що реально змінює Temporal.Тепер ти можеш:✔️ порівнювати дати без getTime() і математики в мілісекундах;✔️ рахувати діапазони: скільки днів між подіями, скільки місяців до дедлайну;✔️ працювати з календарями без страху літнього часу;✔️ мати «тільки дату» або «тільки час», а не дивний Date з усім одразу;✔️ додавати «1 місяць» так, щоб це був справді місяць, а не 30 днів;✔️ не ламати стан у React через мутабельність.Як це виглядає:Порівняння без магії:date1.equals(date2)Temporal.PlainDate.compare(a, b)
Діапазони та різниця:start.until(end, { largestUnit: "days" })
Арифметика дат:date.add({ months: 1 })date.subtract({ days: 10 })
Чіткі типи замість хаосу:PlainDate — просто датаPlainTime — тільки часZonedDateTime — дата + зонаInstant — точний момент у UTCDuration — інтервалиЧасові зони без сліз:event.withTimeZone("Europe/Kyiv")
Головний ефект для фронтенду:календарі та пікери дат — без бібліотек;буккінг та підписки — без костилів;міжнародні проєкти — без «чому в березні зникла година».І найважливіше: Temporal немутабельний. Жоден метод тихо не перепише твою дату в стейті.Це той момент, коли JavaScript вперше за 25 років отримав нормальну модель часу.Що все це означає?JavaScript явно рухається трьома рейками:1) Менше магії.Те, що ми копіювали зі StackOverflow, переїжджає у стандарт.2) Безпека за замовчуванням.Менше мутацій, менше неочікуваних ефектів.3) Мінус залежності.Багато задач, заради яких тягнули lodash та утиліти, вирішуються нативно.Якщо ти джун — вітаю: мова, яку ти вчиш зараз, набагато дружелюбніша за ту, на якій писали «старші».Якщо мідл — час потроху викидати самописні хелпери й переписувати їх на нові API.ES2026 — JavaScript стає нуднішим, передбачуванішим і дорослішим. І це, мабуть, найкращий комплімент мові.👉 Зберігай, щоб потім на рев’ю сказати: «навіщо lodash, у нас тепер все нативне».https://tc39.es/ecma262/