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有什么新功能?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

产品型社群

产品型社群

李善友 / 机械工业出版社 / 2015-3-1 / CNY 69.00

传统模式企业正在直面一场空前的“降维战争”, 结局惨烈,或生或死。 传统模式很难避免悲惨下场, 诺基亚等昔日庞然大物轰然倒塌, 柯达发明了数码成像技术却依然破产, 新商业的兴起到底遵循的是什么模式? 微信轻而易举干掉了运营商的短信业务, “好未来”为何让传统教育不明觉厉? 花间堂为什么不是酒店,而是入口? 将来不会有互联网企业与传统企业之分, ......一起来看看 《产品型社群》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具