DEV Community

Kas Elvirov
Kas Elvirov

Posted on

ECMAScript 2025 вышел в релиз меньше суток назад. Топ‑10 фич, которые стоит попробовать уже сейчас

Привет 👋

Переодически слежу за эволюцией JavaScript, и вот свежая веха — утверждён стандарт ECMAScript 2025 (16‑е издание). Стандарт приняли в июне, релизнули меньше суток назад, и многие фичи уже доступны в новых версиях Node.js и браузеров.

Собрал топ‑10 обновлений, которые лично меня зацепили — с краткими пояснениями, примерами кода и ссылками на стандарт👇


🥇 1. Импорт JSON с import attributes

import config from './config.json' with { type: 'json' };
Enter fullscreen mode Exit fullscreen mode

Теперь JSON можно импортировать как полноценный модуль, без fetch/axios/require. Это чисто, понятно и нативно.

📘 спека: Import attributes


🥈 2. Итераторные утилиты (Iterator helpers)

[1, 2, 3].values()
  .map(x => x * 2)
  .filter(x => x > 2)
  .take(2)
  .toArray(); // [4, 6]
Enter fullscreen mode Exit fullscreen mode

Это как lodash, но встроенный прямо в итераторы: .map(), .filter(), .take(), .drop(), .toArray() — и всё это ленивое.

📘 спека


🥉 3. Операции над множествами: Set 2.0

new Set([1, 2]).union(new Set([2, 3])); // Set {1, 2, 3}
Enter fullscreen mode Exit fullscreen mode

Наконец-то, у нас есть .union(), .intersection(), .difference(), .isSubsetOf() и другие нативные методы.

📘 спека


🏅 4. RegExp.escape()

RegExp.escape("a+b*c?"); // "a\+b\*c\?"
Enter fullscreen mode Exit fullscreen mode

Безопасный способ экранировать строки перед вставкой в RegExp — никакого больше ручного .replace().

📘 спека


🎯 5. Inline-флаги в регулярках

/(?i:abc)/.test("ABC"); // true
Enter fullscreen mode Exit fullscreen mode

Можно задавать флаги прямо внутри паттерна, как в других языках.

📘 спека


🧠 6. Повторяющиеся именованные группы в RegExp

/(?<word>foo)|(?<word>bar)/.exec("bar");
Enter fullscreen mode Exit fullscreen mode

Теперь допустимы одинаковые имена групп в альтернативных ветках.

📘 спека


🧪 7. Promise.try()

Promise.try(() => maybeThrows()).then(...).catch(...);
Enter fullscreen mode Exit fullscreen mode

Удобный способ обернуть синхронный код в цепочку промисов без лишнего new Promise(...).

📘 спека


🧬 8. Поддержка float16

const f16 = new Float16Array([1.5, 2.75]);
Enter fullscreen mode Exit fullscreen mode

Это половинная точность — полезно для графики, ML и WebGPU.

📘 спека


💥 9. Встроенная поддержка with в import() (динамически)

await import("./data.json", { with: { type: "json" } });
Enter fullscreen mode Exit fullscreen mode

Та же идея, что и для static import — но теперь и в import().

📘 спека


🧩 10. Методы DataView.getFloat16() и setFloat16()

const dv = new DataView(new ArrayBuffer(2));
dv.setFloat16(0, 1.5);
Enter fullscreen mode Exit fullscreen mode

Да, DataView теперь умеет работать с float16. Пригодится для low-level задач.

📘 спека


🔚 Заключение

ES2025 — это тихая эволюция: полезные и зрелые фичи, которые реально упрощают жизнь

  • проверь, какие фичи уже поддерживаются у тебя в Node/браузерах,
  • поэкспериментируй в playground (например jsv9000.app)
  • и не забывай смотреть в спецификацию: tc39.es/ecma262

Top comments (0)