美文网首页
ES2019 / ES10有什么新功能?

ES2019 / ES10有什么新功能?

作者: Herrylo | 来源:发表于2019-06-21 16:15 被阅读0次
ES2019

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() ** 方法与ES6Array.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有什么新功能?

    2019年版的ECMAScript规范增加了许多新功能,在这里我将介绍其中的一些新功能。 Array.flat()...

  • 尝鲜 ES2019 的新功能

    尝鲜 ES2019 的新功能 翻译:疯狂的技术宅链接:https://medium.freecodecamp.or...

  • ES2019(ES10)

    一、JSON superset 将ECMA-262语法扩展为JSON超集 动机 ECMAScript声称JSON是...

  • ES2019(ES10)

    主要新特性: Array.prototype.{flat,flatMap} Object.fromEntries ...

  • JavaScript ES2019 中的 8 项新功能

    JavaScript 一直在不断改进和添加更多新功能。TC39 已经完成,并批准了 ES2019 的 8 项新功能...

  • 尝鲜 ES2019 的新功能

    ECMAScript 每年都会发布一个新版本,其中的提案是已经正式通过的,并分发给开发者和用户。本文将讨论该语言的...

  • All the New ES2019 Tips and Tric

    All the New ES2019 Tips and Tricks翻译:范小饭 ES2019中新的提示和技巧 随...

  • ES2019的几个新增特性

    快速了解 JavaScript ES2019 的五个新增特性,如需了解其他新特性,请移步官网查看 ES2019 规...

  • JavaScript ES2019 中的 8 个新功能

    1. 可选的 catch 绑定 可选的 catch 绑定提案是为了能够选择性地移除使用不到的 catch 绑定。 ...

  • ES6 VS ES10

    ES10 New Feature String.matchAll() String.trimStart() .tr...

网友评论

      本文标题:ES2019 / ES10有什么新功能?

      本文链接:https://www.haomeiwen.com/subject/ogxuqctx.html