Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. JavaScript
  5. ECMAScript 2026 официально опубликован: что изменится в JavaScript в 2026 году

ECMAScript 2026 официально опубликован: что изменится в JavaScript в 2026 году

Запланировано Прикреплена Закрыта Перенесена JavaScript
ecmascript 2026javascripttemporal api
1 Сообщения 1 Постеры 0 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • hannadevH Не в сети
    hannadevH Не в сети
    hannadev
    написал отредактировано
    #1

    ECMAScript 2026 официально вышел. Это 17-я редакция стандарта JavaScript, которая добавляет полезные инструменты для повседневной разработки. Теперь код станет чище и надежнее.

    Разработчики давно ждали этих обновлений. Они решают проблемы с датами, регулярками и большими числами. Прочитав статью, вы поймете, как использовать новинки, чтобы ускорить работу и избежать ошибок в проектах.

    Новое в работе с датами и временем: Temporal API

    Temporal API - главное событие ECMAScript 2026. Раньше даты обрабатывали через Date, но это приводило к ошибкам из-за часовых поясов и локалей. Temporal вводит классы вроде Temporal.PlainDate и Temporal.ZonedDateTime, которые работают предсказуемо. Спецификация прошла тысячи тестов, чтобы покрыть все случаи.

    Например, раньше сравнение дат в разных зонах могло сломать логику. Теперь Temporal.Now.zonedDateTimeISO() дает точное текущее время с учетом зоны. Это упрощает код в веб-приложениях, где пользователи из разных стран. Масштаб API большой, но он закрывает дыры в старых библиотеках.

    Вот ключевые классы Temporal:

    • Temporal.PlainDate: для дат без времени, идеально для календарей.
    • Temporal.ZonedDateTime: с зоной, поддерживает UTC и offset.
    • Temporal.Duration: точный подсчет интервалов, без ошибок накопления.
    Класс Старый подход (Date) Новый Temporal
    Простая дата new Date(‘2026-03-09’) Temporal.PlainDate.from(‘2026-03-09’)
    Зона ручной offset Temporal.ZonedDateTime.from() с ‘UTC’
    Длительность getTime() разница Temporal.Duration.from()

    Важно: Temporal не заменяет Date полностью, но рекомендуется для новых проектов.

    Улучшения RegExp и Promise

    RegExp стал мощнее с методом RegExp.escape(). Он экранирует строки для безопасного использования в паттернах, без ручного escaping. Еще добавили синтаксис для флагов внутри regex, типа /test/giu - это удобно для динамических шаблонов.

    Promise.try() упрощает вызов функций, которые могут вернуть промис или нет. Всегда возвращает Promise, ловит ошибки на лету. Float16Array расширяет TypedArray для 16-битных float - полезно для графики и ML в браузере. Методы DataView.getFloat16() и Math.f16round() дополняют набор.

    Основные новинки:

    • RegExp.escape(‘*.txt’) - готовый паттерн без ошибок.
    • /abc/def/u:i - флаги inline, гибкость без RegExp().
    • Promise.try(fn) - унифицирует async/sync код.

    Эти фичи снижают boilerplate и делают код короче на 20-30% в типичных задачах.

    JSON и Math: точность для больших данных

    JSON теперь парсит BigInt с ревайтером. Пример: digitsToBigInt проверяет строку на цифры и возвращает BigInt. Это решает проблему с числами больше Number.MAX_SAFE_INTEGER. JSON.rawJSON() для сериализации BigInt в строку.

    Math.sumPrecise() суммирует числа без потери точности - критично для финансов и симуляций. Array.prototype.sort теперь stable по стандарту, не меняет порядок равных элементов.

    Примеры в коде:

    const big = BigInt('1' + '0'.repeat(1000));
    JSON.parse(String(big), (k, v, {source}) => /^[0-9]+$/.test(source) ? BigInt(source) : v) === big;
    
    • Math.sumPrecise([0.1, 0.2]) - вернет 0.3 точно.
    • Stable sort: [1, 2, 1].sort((a,b)=>0) сохранит порядок вторых 1.
    Метод Проблема раньше Решение в ES2026
    JSON + BigInt потеря точности reviver с BigInt
    Math.sum накопление ошибок sumPrecise()
    Array.sort нестабильный stable по дефолту

    Iterator, Set и мелкие полировки

    Добавили глобальный Iterator с методами для итераторов. Set получил методы вроде intersection() и union(). Это упрощает операции над множествами без lodash.

    JSON.stringify() всегда выдает UTF-8, Function.toString() уточнили для source text. Поддержка U+2028 в строках aligns с JSON.

    Ключевые добавления:

    • Iterator.from() - из массива или генератора.
    • Set.prototype.intersection(otherSet).
    • Float16Array для WebGL и тензоров.

    Эволюция без революций

    ECMAScript 2026 шлифует язык аккуратно. Temporal - звезда релиза, но есть и другие инструменты для точности и удобства. Многие фичи уже в Canary-версиях браузеров.

    Осталось место для экспериментов на stage 3, вроде новых паттернов. Стоит протестировать в проектах, чтобы увидеть, как они влияют на производительность.

    1 ответ Последний ответ
    0

    Здравствуйте! Похоже, вас заинтересовала эта беседа, но у вас ещё нет аккаунта.

    Надоело каждый раз пролистывать одни и те же посты? Зарегистрировав аккаунт, вы всегда будете возвращаться на ту же страницу, где были раньше, и сможете выбирать, получать ли уведомления о новых ответах (по электронной почте или в виде push-уведомлений). Вы также сможете сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.

    С вашими комментариями этот пост мог бы стать ещё лучше 💗

    Зарегистрироваться Войти

    Категории

    • Главная
    • Новости
    • Фронтенд
    • Бекенд
    • Языки программирования

    Контакты

    • Сотрудничество
    • info@exlends.com
    • Наш чат
    • Наш ТГ канал

    © 2024 - 2026 ExLends, Inc. Все права защищены.

    Политика конфиденциальности
    • Войти

    • Нет учётной записи? Зарегистрироваться

    • Войдите или зарегистрируйтесь для поиска.
    • Первое сообщение
      Последнее сообщение
    0
    • Лента
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы