Привет 👋
Переодически слежу за эволюцией JavaScript, и вот свежая веха — утверждён стандарт ECMAScript 2025 (16‑е издание). Стандарт приняли в июне, релизнули меньше суток назад, и многие фичи уже доступны в новых версиях Node.js и браузеров.
Собрал топ‑10 обновлений, которые лично меня зацепили — с краткими пояснениями, примерами кода и ссылками на стандарт👇
🥇 1. Импорт JSON с import attributes
import config from './config.json' with { type: 'json' };
Теперь JSON можно импортировать как полноценный модуль, без fetch/axios/require. Это чисто, понятно и нативно.
🥈 2. Итераторные утилиты (Iterator helpers)
[1, 2, 3].values()
.map(x => x * 2)
.filter(x => x > 2)
.take(2)
.toArray(); // [4, 6]
Это как lodash, но встроенный прямо в итераторы: .map()
, .filter()
, .take()
, .drop()
, .toArray()
— и всё это ленивое.
📘 спека
🥉 3. Операции над множествами: Set 2.0
new Set([1, 2]).union(new Set([2, 3])); // Set {1, 2, 3}
Наконец-то, у нас есть .union()
, .intersection()
, .difference()
, .isSubsetOf()
и другие нативные методы.
📘 спека
🏅 4. RegExp.escape()
RegExp.escape("a+b*c?"); // "a\+b\*c\?"
Безопасный способ экранировать строки перед вставкой в RegExp — никакого больше ручного .replace()
.
📘 спека
🎯 5. Inline-флаги в регулярках
/(?i:abc)/.test("ABC"); // true
Можно задавать флаги прямо внутри паттерна, как в других языках.
📘 спека
🧠 6. Повторяющиеся именованные группы в RegExp
/(?<word>foo)|(?<word>bar)/.exec("bar");
Теперь допустимы одинаковые имена групп в альтернативных ветках.
📘 спека
🧪 7. Promise.try()
Promise.try(() => maybeThrows()).then(...).catch(...);
Удобный способ обернуть синхронный код в цепочку промисов без лишнего new Promise(...)
.
📘 спека
🧬 8. Поддержка float16
const f16 = new Float16Array([1.5, 2.75]);
Это половинная точность — полезно для графики, ML и WebGPU.
📘 спека
💥 9. Встроенная поддержка with
в import()
(динамически)
await import("./data.json", { with: { type: "json" } });
Та же идея, что и для static import — но теперь и в import()
.
📘 спека
🧩 10. Методы DataView.getFloat16()
и setFloat16()
const dv = new DataView(new ArrayBuffer(2));
dv.setFloat16(0, 1.5);
Да, DataView
теперь умеет работать с float16
. Пригодится для low-level задач.
📘 спека
🔚 Заключение
ES2025 — это тихая эволюция: полезные и зрелые фичи, которые реально упрощают жизнь
- проверь, какие фичи уже поддерживаются у тебя в Node/браузерах,
- поэкспериментируй в playground (например jsv9000.app)
- и не забывай смотреть в спецификацию: tc39.es/ecma262
Top comments (0)