ES2019 / ES10有什么新功能?
栏目: JavaScript · 发布时间: 5年前
内容简介:2019年版的ECMAScript规范增加了许多新功能,在这里我将介绍其中的一些新功能。
2019年版的ECMAScript规范增加了许多新功能,在这里我将介绍其中的一些新功能。
Array.flat()
Array.flat()
返回一个新数组,其中任何子数组都被展开。
Array.flat()
没有任何参数的
调用,
只会展开一层深度。
可以提供可选的深度参数,支持连续调用。
Example:
let arr = [1, 2, 3, [4, 5, 6, [7, 8, 9, [10, 11, 12]]]]; arr.flat(); // [1, 2, 3, 4, 5, 6, Array(4)]; arr.flat().flat(); // [1, 2, 3, 4, 5, 6, 7, 8, 9, Array(3)]; arr.flat(3); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] // 如果不知道长度,可以直接使用Infinity arr.flat(Infinity); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]复制代码
Array.flatMap()
该 Array.flatMap()
方法与ES6
Array.Map()
方法相同,但同时也支持展平。
该 Array.flatMap()
方法首先使用映射函数映射每个元素,然后将结果展平为新数组。
flatMap()
通常非常有用,因为将两者合并到一个方法中效率更高 。
Example:
let arr = [1, 2, 3, 4, 5]; arr.map(x => [x, x * 2]); // [Array(2), Array(2), Array(2)] // 0: (2)[1, 2] // 1: (2)[2, 4] // 2: (2)[3, 6] // 3: (2)[4, 8] // 4: (2)[5, 10] arr.flatMap(v => [v, v * 2]); // [1, 2, 2, 4, 3, 6, 4, 8, 5, 10]复制代码
String.trimStart() & String.trimEnd()
String.trimStart()
可用于从字符串的开头去掉空白。 String.trimEnd()
可用于从字符串的尾部去掉空白。
Example:
let greeting = " Hello World"; console.log(greeting.trimStart()); // "Hello World" let greeting = "Hello World "; console.log(greeting.trimEnd()); // "Hello World"复制代码
可选 Catch Binding
可选的 catch binding 允许开发人员在catch块中,不使用error参数的情况下使用try/catch。
Example:
// ES2019 之前使用 try { // some code } catch (err) { // error handling code } 复制代码
// 现在使用ES2019这样的try / catch: try { // some code } catch { // error handling code }复制代码
Object.fromEntries()
Object.fromEntries()
创建一个对象或将键值对转换为一个对象。它只接受
Iterable
迭代
例如: Object.fromEntries(Iterable)
。
Example:
let entries = new Map([["name", "herrylo"], ["age", 24]]); console.log(Object.fromEntries(entries)); // { name: 'herrylo', age: 24 }复制代码
Symbol.description
只读描述属性,是一个返回Symbol对象的可选描述的字符串。
Example:
let mySymbol = `My Symbol`; let symObj = Symbol(mySymbol); console.log(symObj) // Symbol(mySymbol); console.log(String(symObj) === `Symbol(${mySymbol})`); // true console.log(symObj.description); // "My Symbol"复制代码
以上所述就是小编给大家介绍的《ES2019 / ES10有什么新功能?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- ECMAScript 2015 新功能關係
- ExtJS 6.6的新功能
- SARscape5.5新功能
- Yar-2.1.0 新功能介绍
- Python 3.8 的超酷新功能
- 刚刚,GitHub重磅发布四大新功能!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。