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"