在 Chrome 72 中,我們新增了以下支援功能:
- 在 JavaScript 中建立公開類別欄位現在變得更加簡潔。
- 您可以使用新的 User Activation API,查看網頁是否已啟用
- 使用
Intl.format()API 就能輕鬆將清單本地化。
還有更多!
我是 Pete LePage,讓我們深入瞭解 Chrome 72 版為開發人員提供的新功能!
變更記錄
這篇文章只涵蓋部分重點,請參閱下方連結,瞭解 Chrome 72 的其他變更。
公開類別欄位
我第一門學習的語言是 Java,因此在學習 JavaScript 時,有點不知所措。如何建立課程?或繼承?那麼公開和私人屬性和方法呢?許多近期的 JavaScript 更新,可讓以物件為導向的程式設計變得更簡單。
我現在可以建立類別,讓這些類別按照預期運作,並包含建構函式、getter 和 setter、靜態方法和公開屬性。
多虧 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
我們正在開發私人類別欄位的支援功能!
詳情請參閱 Mathias 的文章,瞭解類別欄位的相關資訊。
User Activation API
還記得網站在頁面載入後會自動播放音效嗎?你急忙地按下靜音鍵,或找出該分頁並關閉它。因此,部分 API 必須透過使用者手勢啟用,才能運作。很抱歉,瀏覽器處理啟用的方式不同。
Chrome 72 推出了使用者啟用功能 v2,可簡化所有受控 API 的使用者啟用程序。這項功能是根據新的規格開發,旨在將所有瀏覽器的啟用方式標準化。
navigator 和 MessageEvent 都有一個新的 userActivation 屬性,其中包含兩個屬性:hasBeenActive 和 isActive:
hasBeenActive會指出關聯視窗在生命週期中是否曾經歷使用者啟用。isActive會指出關聯視窗目前在其生命週期中是否有使用者啟用。
詳情請參閱「在各 API 中確保使用者啟用作業一致」
使用 Intl.format 將事物清單本地化
我很喜歡 Intl API,因為它們非常適合將內容翻譯成其他語言!Chrome 72 推出了新的 .format() 方法,可簡化清單的算繪作業。這項 API 與其他 Intl 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 的新功能!