ECMAScript 2019 (ES2019) / ES10 的新功能

ECMAScript(简称ES)是由ECMA International在ECMA-262和ISO/IEC 16262中标准化的脚本语言规范,旨在标准化JavaScript语言,以促进浏览器供应商的多种独立标准实现。

ECMAScript规范的2019版增加了许多新功能,在这里我将涵盖一些这些新功能。

( )

Array.flat() 返回一个新的数组,任何子数组(s)均匀。 呼叫 Array.flat() 没有任何参数只会平衡一个级深度。

例子:

 1let arr = [1, 2, 3, [4, 5, 6, [7, 8, 9, [10, 11, 12]]]];
 2
 3arr.flat(); // [1, 2, 3, 4, 5, 6, Array(4)];
 4
 5arr.flat().flat(); // [1, 2, 3, 4, 5, 6, 7, 8, 9, Array(3)];
 6
 7arr.flat(3); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
 8
 9// Or, if you're not sure about the depth of the array:
10arr.flat(Infinity); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]

标签:FlatMap()

flatMap()方法与ES6地图方法相同,但同时也表面化。 该flatMap()方法首先使用地图函数地图每个元素,然后将结果表面化成一个新的数组。

例子:

 1let arr = [1, 2, 3, 4, 5];
 2
 3arr.map(x => [x, x * 2]);
 4// [Array(2), Array(2), Array(2)]
 5// 0: (2)[1, 2]
 6// 1: (2)[2, 4]
 7// 2: (2)[3, 6]
 8
 9arr.flatMap(v => [v, v * 2]);
10// [1, 2, 2, 4, 3, 6, 4, 8, 5, 10]

使用 String.trimStart() 和 String.trimEnd()

String.trimStart() 可用于从字符串开始切割白色空间。

例子:

1let greeting =  "    Hello everyone";
2
3console.log(greeting.trimStart());
4// "Hello everyone"
1let greeting = "Hello world    ";
2
3console.log(greeting.trimEnd());
4// "Hello world"

可选捕捉束缚

可选的捕获绑定允许开发人员使用尝试/捕获,而无需捕获块内部的错误参数。

例子:

在ES2019之前,我们使用:

1try {
2  // some code
3}
4catch (err) {
5  // error handling code
6}

现在我们可以用 ES2019 这样的尝试/捕获:

1try  {
2  // some code
3}
4catch {
5  // error handling code
6}

对象: 对象 对象( )

它创建一个对象或将关键值对转换为对象. 它只接受 iterables 例如: Object.fromEntries(someIterable)

例子:

1let entries = new Map([["name", "john"], ["age", 22]]);
2
3console.log(Object.fromEntries(entries));
4// { name: 'john', age: 22 }

标签: 描述

只读的描述属性是返回符号对象的可选描述的字符串。

例子:

1let mySymbol = `My Symbol`;
2
3let symObj = Symbol(mySymbol);
4
5console.log(symObj) // Symbol(mySymbol);
6
7console.log(String(symObj) === `Symbol(${mySymbol})`); // true
8
9console.log(symObj.description); // "My Symbol"
Published At
Categories with 技术
Tagged with
comments powered by Disqus