ES10助你效率再提升

329 阅读2分钟

我正在参与掘金创作者训练营第4期,点击了解活动详情,一起学习吧!

一、Object.fromEntries()

Object.fromEntries()把键值对列表转换为一个对象

我们之前学习过Object.entries(),你还记得他的作用么?我们不放看一下如下代码:

carbon.png

image.png

上面的代码返回的是一个数组。是一个键值对列表。所以我们就可以用Object.fromEntries()处理上述结果,代码如下:

carbon (1).png

可以看到最终的结果被转换为对象形式。

我们也可以用Object.fromEntries()将map形式数据转换为对象形式

carbon (2).png

image.png

用Object.fromEntries()转换之后,

carbon (3).png

综上,当我们需要将键值对队列形式转换为对象时,我们就可以用Object.fromEntries()帮我们实现

二、String.prototype.trimStart(),String.prototype.trimEnd()

trimStart(),trimEnd()是String的实例方法,用于去掉字符串前后或后面的空格字符。

之前我们学过trim,用于去掉字符串中的所有空格。

carbon (4).png

carbon (5).png

我们其实可以用正则来实现去掉前后空格的需求,

carbon (7).png

ES10为我们提供了新的方法trimStart(),trimEnd()

carbon (8).png

此外,其实还有两个方法也能实现上述需求,那就是trimLeft()和trimRight()

carbon (9).png

三、Array.prototype.flat() Array.prototype.flatMap()

3.1 Array.prototype.flat()

Array.prototype.flat()的作用是对多为数组进行扁平化处理,当不传参数时,flat默认深度是1,我们可以传递一个参数,作为需要扁平的深度,也可以传入Ifinity,让数组变为一维数组。代码如下所示:

carbon (10).png

3.2 Array.prototype.flatMap()

Array.prototype.flatMap()其实就是map与flat的结合。首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。

carbon (11).png

当我们上述代码的返回值时,我们就可以用flatMap()处理

carbon (12).png

四、Function.prototype.toString()

Function.prototype.toString()用于返回源代码中的实际文本片段。包括代码中的注释。

carbon (13).png

image.png

五、可选的catch Binding

在ES10中,允许我们在catch后不写()和参数,可以直接跟{},这在之前是不被允许的。

image.png

六、ES10对JSON的扩展

JSON superset其实是超集的意思,他的作用是让ES完全支持兼容JSON的文本。早期的JSON只是ES的子集。其实在JSON中是支持行分隔符和段分隔符的,但是在ES中是不支持的,但是在ES10中,superset弥补了这一缺憾。支持了行分隔符和段分隔符。

行分隔符-\u2028

段分隔符-\u2029

carbon (14).png

七、Symbol.prototype.description

Symbol.prototype.description可以获取对Symbol的描述,这是一个只读属性,不可以写。

carbon (15).png

八、总结

ES10新增的特性为我们提供了更多变更快捷的方法,也在写法上扩展上进行了加强。这会让我们的工作更加的顺畅,为我们节省更多地开发时间。