Новое в Chrome 72

В Chrome 72 мы добавили поддержку:

И это еще не все !

Меня зовут Пит ЛеПейдж . Давайте углубимся и посмотрим, что нового для разработчиков в 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 требуют активации жестом пользователя, прежде чем они заработают. К сожалению, браузеры обрабатывают активацию по-разному.

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!