ES2019 / ES10有什么新功能?
栏目: JavaScript · 发布时间: 7年前
内容简介: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有什么新功能?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Think Python
Allen B. Downey / O'Reilly Media / 2012-8-23 / GBP 29.99
Think Python is an introduction to Python programming for students with no programming experience. It starts with the most basic concepts of programming, and is carefully designed to define all terms ......一起来看看 《Think Python》 这本书的介绍吧!