Перейти к основному содержимому

3 записи с тегом "Node.js 12"

Посмотреть все теги

`globalThis`

· 2 мин. чтения
Mathias Bynens ([@mathias](https://twitter.com/mathias))

Если вы писали JavaScript для использования в веб-браузере, возможно, вы использовали window для доступа к глобальному объекту this. В Node.js вы могли использовать global. Если вы писали код, который должен работать в обеих средах, вы могли определить, какой из них доступен, и затем использовать его — но список идентификаторов, которые нужно проверять, растет с увеличением числа окружений и случаев использования. Это быстро выходит из-под контроля:

`Intl.ListFormat`

· 3 мин. чтения
Матиас Биненс ([@mathias](https://twitter.com/mathias)) и Фрэнк Юнг-Фонг Танг

Современные веб-приложения часто используют списки, состоящие из динамических данных. Например, приложение для просмотра фотографий может отображать что-то вроде:

Эта фотография включает Аду, Эдит и Грейс.

Текстовая игра может иметь другой вид списка:

Выберите свою суперсилу: невидимость, психокинез или эмпатию.

Так как у каждого языка есть свои собственные правила форматирования списков и слова, реализация локализованного форматирования списка является нетривиальной задачей. Это требует не только списка всех слов (например, «и» или «или» в приведенных выше примерах) для каждого поддерживаемого языка — к тому же нужно описать точные правила форматирования для всех этих языков! Unicode CLDR предоставляет эти данные, но чтобы использовать их в JavaScript, их нужно интегрировать и включить в библиотеку. Это, к сожалению, увеличивает размер пакета для таких библиотек, что негативно сказывается на времени загрузки, стоимости обработки/компиляции и потреблении памяти.

`Intl.RelativeTimeFormat`

· 4 мин. чтения
Mathias Bynens ([@mathias](https://twitter.com/mathias))

Современные веб-приложения часто используют выражения вроде «вчера», «42 секунды назад» или «через 3 месяца» вместо полных дат и временных меток. Такие значения относительного времени стали настолько распространёнными, что несколько популярных библиотек реализовали утилитарные функции для их локализованного форматирования. (Примеры включают Moment.js, Globalize и date-fns.)