成都GDG分享會總結(前端部分)

雖然說是GDG分享會,其實前端部分是由成都FCC負責人水歌分享的,感謝各位大佬們的分享!下面獻出一張現場照片(反正大家也不知道哪一個是我23333)javascript

前言

本次分享水歌主要講了一下Chrome要即將更新的75版本的內容,以及已經提出,可是還未經過或者75版本不會當即更新的功能,同時裏面也有些已經推出可是不多用的功能。我只是個分享會的搬運工~前端

下面進入正題!java

正題

1.Portal標籤

Portal是一個Google即將推出的新的HTML標籤。在以往,咱們若是要嵌套一個網頁就會用iframe操做,可是當iframe展現頁面以後url並沒改變,仍然是父級的urlPortal的出現就能夠解決這個問題,當點擊了Portal標籤跳轉的頁面以後,url欄所顯示的就是Portal中展現的頁面的url。想詳細瞭解的小夥伴能夠看一下這篇文章:Google launches Portals, a new web page navigation system for Chromeweb

2.分享API

Google將提供本身的分享連接的API,無需再使用其餘插件。chrome

if(navigator.canShare())
  navigator.share({
  title: document.title,
  text: '掘金',
  url: 'https://juejin.im/timeline',
});
複製代碼

canShareNavigator的一個interface,返回布爾類型值,若是返回值爲true那麼就能夠執行share函數。share函數中就是一個Objet,內有texturltitle三個字段,返回結果爲一個Promise對象。瀏覽器

3.形狀檢測API

Google也將會推出各類形狀檢測API好比TextDetectorFaceDetector等。其實去年FaceDetector已經在Android推出了只不,可是接下來也將會在瀏覽器推出相應接口。async

4.原生類的加強

對整數類型進行了加強,好比多了BigInt來處理長整型溢出問題,數字後面加上n來表示短整型,同時還有推出了能夠人爲分割數字的功能:函數

// 解決了數位數的問題
const integer = 1_0000_0000;
console.log(integer); // 100000000
複製代碼

5.全局對象

事實上,在不一樣的 JavaScript 環境中拿到全局對象是須要不一樣的語句的。在 Web 中,能夠經過 windowself 或者 frames 取到全局對象,可是在 Web Workers 中只有 self 能夠。在 Node.js 中,它們都沒法獲取,必須使用 global。在鬆散模式下,能夠在函數中返回 this 來獲取全局對象,可是在嚴格模式下 this 會返回 undefined優化

globalThis 提供了一個標準的方式去獲取不一樣環境下的全局對象。它不像 window 或者 self 這些屬性,而是確保能夠在有無窗口的環境下均可以正常工做。因此你能夠安心的使用 globalThis ,沒必要擔憂它的運行環境。使用以下:ui

if (typeof globalThis.setTimeout !== 'function') {
  // no setTimeout in this environment!
}
複製代碼

6.國際化API

國際化API主要是處理數據的格式化,好比:時間、金額、物理單位等。好比:

const name = ['Thoughtful valiant.', 'niuniu', 'George'];
const and = new Intl.ListFormat('zh-CH', {type: 'conjunction'}),
      or = new Intl.ListFormat('zh-CN', {type: 'disjunction'});
console.log(`U can call me ${and.format(name)}`); 
// U can call me Thoughtful valiant.、niuniu和George
console.log(`U can call me ${or.format(name)}`); 
// U can call me Thoughtful valiant.、niuniu或George
複製代碼

7. Promise新方法

咱們經常使用的Promise.all()Promise.race()其實並不全面,一個是所有resolve返回結果,而另外一個是無論resolve仍是reject有結束的立馬返回結果。

爲了彌補不足,又添加了Promise.allSettled()Promise.any(),前者是全部的結束以後返回結果(不論resolve仍是reject),後者是隻返回第一個resolve的結果。

同時,咱們如今在使用await時必須嵌套在async內,在更新以後,咱們能夠直接使用await一個Promise對象,不用再像下面同樣再嵌套一個IIFE

(async function() {
  await ...
}
)()
複製代碼

8. 增長了弱引用類型

在現有的WeakMapWeakSet等弱引用類型的基礎上,又增長了WeakRefFinalizationGroup來優化垃圾回收。

結語

今天水歌講的大體就這些(刪減了一些),就分享給你們!再次感謝各位大佬今天的分享,Respect!

Chrome Beta版本連接:Chrome-Beta
同時你們能夠從這裏查看75版本Chrome Dev Tool新特性

相關文章
相關標籤/搜索