Nowości w Chrome 72

W Chrome 72 dodaliśmy obsługę:

A to nie wszystko – to tylko część.

Mam na imię Pete LePage. Zobacz, co nowego w Chrome 72 dla deweloperów.

Historia zmian

To tylko niektóre z najważniejszych zmian. Aby poznać pozostałe, kliknij linki poniżej.

Pola klasy publicznej

Moim pierwszym językiem programowania była Java, a nauczenie się JavaScriptu było dla mnie sporym wyzwaniem. Jak utworzyć zajęcia? A może dziedziczenie? A właściwości i metody publiczne i prywatne? Wiele ostatnich aktualizacji JavaScript, które znacznie ułatwiają programowanie obiektowe.

Teraz mogę tworzyć klasy, które działają tak, jak tego oczekuję, z konstruktorami, metodami getter i setter, metodami statycznymi oraz publicznymi właściwościami.

Dzięki V8 7.2, która jest dostarczana z Chrome 72, możesz teraz deklarować publiczne pola klasy bezpośrednio w definicji klasy, co eliminuje konieczność deklarowania ich w konstruktorze.

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

Pracujemy nad obsługą pól prywatnych zajęć.

Więcej informacji znajdziesz w artykule Mathiasa o polach klasy.

User Activation API

Pamiętasz, że strony mogły automatycznie odtwarzać dźwięk zaraz po załadowaniu? Musisz szybko nacisnąć klawisz wyciszenia lub zorientować się, która karta była aktywna, i ją zamknąć. Dlatego niektóre interfejsy API wymagają aktywacji przez użytkownika, zanim zaczną działać. Niestety przeglądarki obsługują aktywację na różne sposoby.

API aktywacji użytkownika przed i po interakcji użytkownika ze stroną.

W Chrome 72 wprowadzamy wersję 2 aktywacji użytkownika, która upraszcza aktywację użytkownika w przypadku wszystkich interfejsów API z ograniczeniami. Jest ono oparte na nowej specyfikacji, której celem jest ujednolicenie sposobu aktywacji we wszystkich przeglądarkach.

Właściwość userActivation jest nowa zarówno w przypadku navigator, jak i MessageEvent. Ma ona 2 właściwości: hasBeenActiveisActive:

  • hasBeenActive wskazuje, czy powiązane okno było kiedykolwiek aktywowane przez użytkownika.
  • isActive wskazuje, czy powiązane okno ma obecnie aktywację użytkownika w swoim cyklu życia.

Więcej informacji znajdziesz w artykule Ujednolicenie aktywacji użytkowników w różnych interfejsach API.

Lokalizacja listy rzeczy z Intl.format

Uwielbiam interfejsy API Intl, są bardzo pomocne w lokalizowaniu treści na inne języki. W Chrome 72 pojawiła się nowa metoda .format(), która ułatwia renderowanie list. Podobnie jak inne interfejsy API Intl przenosi ono obciążenie na silnik JavaScript, nie wpływając na wydajność.

Inicjalizować go z wybranym ustawieniem języka, a potem wywołać funkcję format. Użyje ona prawidłowej składni i słów. Może tworzyć zdania złożone, dodając odpowiednik słów i w odpowiedniej formie (patrz też piękne przecinki oxfordzkie). Może ona wykonywać dysjunkcje – dodawać lokalny odpowiednik operatora lub. A dzięki temu, że udostępniasz dodatkowe opcje, możesz zrobić jeszcze więcej.

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'

Więcej informacji znajdziesz w artykule Intl.ListFormat API.

I inne funkcje

To tylko kilka z wielu zmian w Chrome 72 dla deweloperów.

Subskrybuj

Jeśli chcesz być na bieżąco z naszych filmów, zasubskrybuj kanał YouTube dla programistów Chrome. Otrzymasz wtedy e-maila z powiadomieniem, gdy opublikujemy nowy film.

Nazywam się Pete LePage i zaraz po wydaniu Chrome 73 opowiem Ci, co nowego w tej wersji przeglądarki.