В Chrome 72 мы добавили поддержку:
- Создание публичных полей классов в JavaScript теперь стало намного понятнее.
- Вы можете увидеть, была ли страница активирована с помощью нового API активации пользователя.
- Локализация списков становится намного проще с API
Intl.format()
.
И это еще не все !
Меня зовут Пит ЛеПейдж . Давайте углубимся и посмотрим, что нового для разработчиков в Chrome 72!
Журнал изменений
Здесь рассмотрены лишь некоторые из основных моментов. Дополнительные изменения в Chrome 72 можно найти по ссылкам ниже.
- Список изменений в исходном репозитории Chromium
- Обновления ChromeStatus.com для Chrome 72
- Устаревание и удаление Chrome 72
Поля открытого класса
Моим первым языком был Java, и изучение JavaScript поставило меня в тупик. Как я создал класс? Или наследование? Что насчет открытых и закрытых свойств и методов? Многие из последних обновлений JavaScript, которые значительно упрощают объектно-ориентированное программирование.
Теперь я могу создавать классы , которые работают так, как я от них ожидаю, включая конструкторы, геттеры и сеттеры, статические методы и публичные свойства.
Благодаря V8 7.2, которая поставляется с Chrome 72, теперь можно объявлять открытые поля класса непосредственно в определении класса, устраняя необходимость делать это в конструкторе.
class Counter {
_value = 0;
get value() {
return this._value;
}
increment() {
this._value++;
}
}
const counter = new Counter();
console.log(counter.value);
// → 0
counter.increment();
console.log(counter.value);
// → 1
Поддержка полей приватных классов находится в разработке!
Более подробную информацию можно найти в статье Матиаса о полях классов .
API активации пользователя
Помните, когда сайты могли автоматически воспроизводить звук сразу после загрузки страницы? Вы суетитесь, чтобы нажать клавишу отключения звука или выяснить, какая это была вкладка, и закрыть ее. Вот почему некоторые API требуют активации жестом пользователя, прежде чем они заработают. К сожалению, браузеры обрабатывают активацию по-разному.

Chrome 72 представляет User Activation v2, которая упрощает активацию пользователя для всех закрытых API. Она основана на новой спецификации , которая направлена на стандартизацию того, как активация работает во всех браузерах.
В navigator
и MessageEvent
появилось новое свойство userActivation
, которое имеет два свойства: hasBeenActive
и isActive
:
-
hasBeenActive
указывает, наблюдалась ли когда-либо активация пользователя в связанном окне в течение его жизненного цикла. -
isActive
указывает, имеет ли связанное окно в настоящий момент активацию пользователя в своем жизненном цикле.
Более подробную информацию можно найти в статье Обеспечение единообразия активации пользователей в различных API.
Локализация списков вещей с помощью Intl.format
Мне нравятся API Intl
, они очень полезны для локализации контента на другие языки! В Chrome 72 есть новый метод .format()
, который упрощает рендеринг списков. Как и другие API Intl
, он перекладывает нагрузку на движок JavaScript, не жертвуя производительностью.
Инициализируйте его с нужной локалью, затем вызовите format
, и он будет использовать правильные слова и синтаксис. Он может делать союзы — которые добавляют локализованный эквивалент and (и посмотрите на эти прекрасные оксфордские запятые). Он может делать дизъюнкции — добавляя локальный эквивалент or . А предоставив некоторые дополнительные параметры, вы можете сделать еще больше.
const opts = {type: 'disjunction'};
const lf = new Intl.ListFormat('fr', opts);
lf.format(['chien', 'chat', 'oiseau']);
// → 'chien, chat ou oiseau'
lf.format(['chien', 'chat', 'oiseau', 'lapin']);
// → 'chien, chat, oiseau ou lapin'
Более подробную информацию можно найти в статье API Intl.ListFormat !
И многое другое!
Это лишь некоторые из изменений в Chrome 72 для разработчиков, конечно, их гораздо больше.
- Chrome 72 изменяет поведение
Cache.addAll()
для лучшего соответствия спецификации. Раньше, если в одном вызове были дублирующиеся записи, последующие запросы просто перезаписывали первые. Чтобы соответствовать спецификации, если есть дублирующиеся записи, он будет отклоняться сInvalidStateError
. - Запросы на значки теперь обрабатываются сервис-воркером, если URL-адрес запроса находится в том же источнике, что и сервис-воркер.
Подписаться
Хотите быть в курсе наших видео? Подпишитесь на наш канал Chrome Developers на YouTube , и вы будете получать уведомления по электронной почте каждый раз, когда мы выпускаем новое видео.
Меня зовут Пит ЛеПейдж, и как только выйдет Chrome 73, я сразу же расскажу вам, что нового в Chrome!