本文主要介绍ES10的13个新特性实例(总结),通过实例代码非常详细的介绍,对大家的学习或工作有一定的参考价值。如果你需要,让我们和边肖一起学习吧。
介绍
ES10是ECMAScript对应2019年的版本。这个版本的新功能没有ES6(2015)那么多。但是,有一些有用的功能。
本文通过一个简单的代码示例介绍了ES10提供的功能。这样不用复杂的解释就能快速了解新特性。
当然,要完全理解引入的新特性,您需要具备JavaScript的基础知识。
ES2019中JavaScript的新特性包括:
数组#{flat,flatMap}
对象. fromEntries
String#{trimStart,trimEnd}
符号#描述
尝试{} catch {} //可选错误参数绑定
JSON ECMAScript
格式良好的JSON.stringify
稳定排序数组#sort
函数#toString的新版本
添加BigInt原始类型(阶段3)。
动态介绍模块(第三阶段)。
的标准全局对象(阶段3)。
ES10类:私有、静态公共(阶段3)。
Array.flat() Array.flatMap()
两种新的数组方法:
Array.flat()方法创建一个新数组,所有子数组元素递归合并到该数组中,直到达到指定的深度。
Array.flatMap()方法首先使用Map函数转换每个元素,然后将结果展平为一个新数组。与map()后调用深度为1的flat()效果相同,但flatMap()将两种方法合二为一,效率更高。
Object.fromEntries()
将键值对的二维数组转换为对象。
String.protype.matchAll()
matchAll()方法返回与正则表达式匹配的字符串的所有结果的迭代器,包括捕获组。
String.trimStart() String.trimEnd()
有两个新的字符串方法可以从字符串中删除空格:
trimStart()方法删除字符串开头的空格。
TrimEnd()方法移除字符串末尾的空格。
Symbol.Description
创建符号时,可以提供一个字符串作为描述。在ES10中,有一个访问器来获取描述。
可选的 Catch 参数变量
过去,try/catch语句中的catch子句需要一个变量。现在,它允许开发人员使用try/catch,而无需创建未使用的错误变量绑定。
JSONECMAScript
在ES10之前,不接受普通的行分隔符U 2028和段落分隔符U 2029。
U 2028是段落分隔符。
U 2029是行分隔符。
格式良好的 JSON.stringify()
JSON.stringify()可能会返回介于U D800和U DFFF之间的字符作为没有UTF 8等效字符的值。然而,JSON格式需要UTF-8编码。解决方案是将不成对的替换代码点表示为JSON转义序列,而不是将它们作为单个UTF-16代码单元返回。
Array.prototype.sort()
V8以前的实现对超过10项的数组使用不稳定的快速排序。
稳定的排序算法是,当两个具有相同键的对象以与未排序的输入相同的顺序出现在排序的输出中时。
新版 Function.toString()
string()方法返回表示函数源代码的字符串。在ES6中,当在函数上调用toString时,它将根据ECMAScript引擎返回函数的字符串表示。如果可能,它将返回源代码,否则返回一个标准化的占位符。
BigInt — 任意精度的整数
BigInt是第7个原语类型,是任意精度的整数。而不仅仅是最大值9007199254740992。
动态引入
Dynamic import()返回所请求模块的承诺。因此,可以使用async/await将导入的模块分配给变量。
标准 globalThis 对象
全球这在ES10之前没有标准化。在生产代码中,您可以通过编写以下代码来“标准化”它:
ES10 Class: private, static public 成员变量,函数
现在,新的语法字符# (hash标签)用于直接定义变量、函数、getter和setter,以及类中的构造函数和类方法。
总结
自2015年ES6出现以来,这种语言一直处于快速发展的状态。在本文中,我们回顾了ES10(2019)中出现的功能,并介绍了一些将在ES11(2020)中保持稳定的功能,因为它们处于状态3,最终可能会在下一个版本中标准化。
尽管这些功能中的许多对于Web应用程序的开发可能不是必需的,但它们提供了一种可能性,即它们只能通过技巧或大量冗长的代码来实现。
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。