ES2019 / ES10有什么新功能?

栏目: JavaScript · 发布时间: 6年前

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

查看所有标签

猜你喜欢:

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

Web Applications (Hacking Exposed)

Web Applications (Hacking Exposed)

Joel Scambray、Mike Shema / McGraw-Hill Osborne Media / 2002-06-19 / USD 49.99

Get in-depth coverage of Web application platforms and their vulnerabilities, presented the same popular format as the international bestseller, Hacking Exposed. Covering hacking scenarios across diff......一起来看看 《Web Applications (Hacking Exposed)》 这本书的介绍吧!

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

在线压缩/解压 HTML 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具