Chrome 72 版新功能

在 Chrome 72 中,我們新增了以下支援功能:

還有更多

我是 Pete LePage,讓我們深入瞭解 Chrome 72 版為開發人員提供的新功能!

變更記錄檔

這篇文章只涵蓋部分重點,請參閱下方連結,瞭解 Chrome 72 的其他變更。

公開類別欄位

我第一門學習的語言是 Java,因此在學習 JavaScript 時,有點不知所措。如何建立課程?或繼承?那麼公開和私人屬性和方法呢?許多近期的 JavaScript 更新,都讓以物件為導向的程式設計變得更加簡單。

我現在可以建立類別,讓這些類別按照預期運作,並包含建構函式、getter 和 setter、靜態方法和公開屬性。

多虧 Chrome 72 隨附的 V8 7.2,您現在可以在類別定義中直接宣告公開類別欄位,而不需要在建構函式中執行這項操作。

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

我們正在努力支援私人類別欄位!

詳情請參閱 Mathias 的文章,瞭解如何使用類別欄位

User Activation API

還記得網站在頁面載入後會自動播放音效嗎?你急忙地按下靜音鍵,或找出該分頁並關閉。因此,部分 API 必須透過使用者手勢啟用,才能運作。很抱歉,瀏覽器處理啟用作業的方式不同。

使用者啟用 API (在使用者與網頁互動前後)。

Chrome 72 推出了使用者啟用功能 v2,可簡化所有受控 API 的使用者啟用程序。這項功能是根據新的規格開發,旨在將所有瀏覽器的啟用方式標準化。

navigatorMessageEvent 都包含新的 userActivation 屬性,其中包含兩個屬性:hasBeenActiveisActive

  • hasBeenActive 會指出關聯視窗在生命週期中是否曾經歷使用者啟用。
  • isActive 會指出關聯視窗目前在其生命週期中是否有使用者啟用。

詳情請參閱「在各 API 中確保使用者啟用作業一致

使用 Intl.format 將事物清單本地化

我很喜歡 Intl API,因為它們非常適合將內容翻譯成其他語言!Chrome 72 推出了新的 .format() 方法,可簡化清單的算繪作業。如同其他 Intl API,這項 API 會將負擔轉移至 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'

詳情請參閱 Intl.ListFormat API 文章!

還有其他眾多資源!

這些只是 Chrome 72 中針對開發人員的部分異動,當然還有更多變更。

  • Chrome 72 會變更 Cache.addAll() 的行為,以便更符合規格。先前,如果同一個呼叫中出現重複項目,後續要求會直接覆寫第一個項目。為了符合規格,如果有重複的項目,系統會傳回 InvalidStateError 來拒絕。
  • 只要要求網址與服務工作者位於相同來源,服務工作者現在就會處理 favicon 要求。

訂閱

如要隨時掌握最新影片,請訂閱我們的 Chrome 開發人員 YouTube 頻道,這樣一來,我們發布新影片時,你就會收到電子郵件通知。

我是 Pete LePage,Chrome 73 一推出,我就會馬上在這裡告訴你 Chrome 有哪些新功能!