Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. JavaScript
  5. Браузерная поддержка ECMAScript 2026: Temporal API и Map.getOrInsert в Chrome 145

Браузерная поддержка ECMAScript 2026: Temporal API и Map.getOrInsert в Chrome 145

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

    Chrome 145 принес важные обновления для JavaScript-разработчиков. В этой версии браузера появились ключевые фичи из ECMAScript 2026 - Temporal API и метод Map.getOrInsert. Эти нововведения решают старые проблемы с датами и коллекциями, упрощая код и снижая ошибки.

    Temporal API заменяет ненадежный Date, а Map.getOrInsert упрощает работу с картами. Поддержка в Chrome 145 означает, что можно использовать их в продакшене без полифиллов. Это ускорит разработку и повысит надежность приложений.

    Temporal API: прощание с проблемами Date

    Temporal API - это современная система для работы с датами и временем в JavaScript. Она достигла стадии 4 в TC39 и интегрирована в Chrome 145. В отличие от Date, Temporal разделяет понятия даты, времени, зоны и интервалов на отдельные типы, что исключает неоднозначности.

    Представьте задачу: назначить встречу в Berlin 31 января 2026 в 14:00. С Date результат зависит от локальной зоны, что приводит к сдвигам. Temporal требует явного указания зоны, делая поведение предсказуемым. Реализация в V8 использует библиотеку temporal_rs версии 0.1, которая проходит все тесты.

    Firefox уже поддерживает Temporal, Safari развивает полифилл, а Chrome 145 делает его стандартным. Это меняет подход к парсингу, форматированию и арифметике дат. Код становится чище, ошибки реже.

    • ZonedDateTime: для моментов с зоной, пример: new Temporal.ZonedDateTime(1738278000000n, 'Europe/Berlin').
    • PlainDate: чистая дата без времени, идеальна для календарей.
    • Duration: интервалы, с методами add/subtract, устойчивы к переполнению.
    • Instant: глобальное время, не зависит от локали.
    Свойство Date Temporal
    Зоны Неявные Явные, полная поддержка
    Изменяемость Мутабельный Неизменяемый
    Форматирование Локальное Настраиваемое, i18n
    Ошибки Тихие Явные исключения

    Важно: Temporal неизменяем, все операции возвращают новые объекты.

    Map.getOrInsert: удобство для коллекций

    Метод Map.getOrInsert - новинка ECMAScript 2026, доступна в Chrome 145. Он проверяет ключ в Map и возвращает значение, если оно есть, или вставляет значение по умолчанию и возвращает его. Это избавляет от шаблонного кода с has/get/set.

    Раньше для кэша писали: if (!map.has(key)) map.set(key, defaultValue); return map.get(key);. Теперь один вызов: map.getOrInsert(key, () => defaultValue). Функция создается лениво, только при отсутствии ключа. Поддержка в V8 оптимизирована для производительности.

    Это полезно в реактивных приложениях, где Map хранит состояния. Chrome 145 интегрирует это в стабильную ветку, без флагов. Другие движки следуют, но Chrome лидирует.

    • Синтаксис: map.getOrInsert(key, creatorFn) - creatorFn вызывается раз.
    • Производительность: быстрее if-has-set, меньше операций.
    • Применение: кэши, счетчики, конфиги по умолчанию.
    • Совместимость: полифилл не нужен в Chrome 145+.
    Сценарий Старый код Новый код
    Кэш if/get/set getOrInsert
    Счетчик has ? ++ : set(0) getOrInsert(key, () => 0)++
    Размер 3 строки 1 строка

    Нюанс: creatorFn должна быть чистой функцией, без сайд-эффектов.

    Браузерная поддержка в Chrome 145

    Chrome 145 вышла в феврале 2026, с фокусом на безопасность и JS-улучшения. Temporal и Map.getOrInsert - часть ECMAScript 2026, ожидаемого весной. Версия 145.0.7632.75+ для Windows/macOS и 144+ для Linux.

    Другие фичи: улучшения WebRTC, CSS text-justify, JPEG-XL. Но Temporal и Map - ключевые для фронтенда. Тестируйте в devtools, обновляйтесь timely.

    Проверка поддержки: typeof Temporal !== 'undefined' и Map.prototype.getOrInsert. Стабильно в Chrome 145.

    • Стадии: Temporal - stage 4, Map.getOrInsert - в процессе.
    • Полифиллы: @js-temporal/polyfill для старых браузеров.
    • Тесты: используйте testharness.js из repo TC39.
    Браузер Temporal Map.getOrInsert
    Chrome 145 Да Да
    Firefox Да Скоро
    Safari Полифилл В разработке

    Совет: комбинируйте с Promise.withResolvers для async.

    Что дает ECMAScript 2026 фронтенду

    Temporal и Map.getOrInsert поднимают JavaScript на новый уровень. Они закрывают пробелы в стандартной библиотеке, делая код короче и надежнее. Chrome 145 ускоряет adoption этих фич.

    Остается ждать полной кросс-браузерности и интеграции с фреймворками. Подумайте, как переписать Date-код на Temporal в своих проектах - это сэкономит часы дебага.

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

    Категории

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

    Контакты

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

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

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

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

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