Что готовит ECMAScript: сырой импорт, pushAll и новые итераторы

Какие предложения обсуждает TC39 и почему они могут перевернуть привычный JavaScript

Разработка

6 мин

JavaScript снова на пороге больших перемен.

Комитет TC39, отвечающий за развитие стандарта ECMAScript, обсуждает свежие предложения, которые способны сильно упростить жизнь разработчикам. Сырой импорт, новый метод pushAll и итераторы с «умными» методами - всё это может войти в язык уже в ближайших релизах. Давайте разберём, что это за фичи и почему за ними стоит следить прямо сейчас.

Сырой импорт (Import Attributes & Raw Imports)

Мы привыкли к import x from '...', но современный фронтенд уже не ограничивается JS и CSS. В игру вступают JSON, WASM и даже нестандартные форматы.

Что предлагают:

import config from './config.json' with { type: 'json' };
import wasm from './engine.wasm' with { type: 'webassembly' };

Возможность работать напрямую с "сырыми" данными, например ArrayBuffer для бинарных файлов. Это убирает костыли с fetch() + Response.text() и делает код прозрачным.

pushAll — долгожданный апгрейд массивов

Сегодня, чтобы добавить массив в массив, мы пишем:

arr.push(...other);

Красиво, но неэффективно. Новый метод:

arr.pushAll(other);

✔ Без скрытых аллокаций

✔ Производительнее на больших данных

✔ Понятнее для новичков

Новые итераторы: функционал в стиле "коллекций"

TC39 обсуждает расширенный API для итераторов, чтобы они стали похожи на коллекции в Python или C#.

const it = [1,2,3,4,5].values()
  .filter(x => x % 2)
  .map(x => x * 10);

console.log([...it]); // [10, 30, 50]

Теперь итераторы перестанут быть "низкоуровневой штукой" и станут полноценным инструментом работы с данными.

Текущий статус в TC39

У каждой новой фичи есть путь от идеи до стандарта. Вот где они находятся сейчас:

Предложение

Описание

Stage

Import Attributes (Raw Imports)

Импорты с указанием типа ресурса (JSON, WASM, бинарные данные)

Stage 3

Array.prototype.pushAll

Добавление элементов массива без спреда

Stage 1

Iterator Helpers

Методы map, filter, take и др. для итераторов

Stage 3

Почему это важно?

  • Импорты делают JS по-настоящему многоформатным языком.

  • pushAll убирает костыли и повышает читаемость.

  • Итераторы выводят язык на новый уровень декларативности.

Мы в Кодике любим копать такие фичи на старте — чтобы потом объяснять простыми словами и показывать, как использовать без боли. В приложении есть курсы по JavaScript и другим языкам, а в нашем Telegram-канале мы обсуждаем свежие предложения TC39 и горячие новости фронтенда.

📲 Присоединяйся к нам и будь в курсе будущего JS!

Комментарии