成都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新特性

相关文章
相关标签/搜索