应用广泛的语言ECMAScript 2018来了,新特性都在这里

译者注:ECMAScript是应用广泛的语言,它常常被称为JavaScript或JScript,但实际上后两者是ECMAScript标准的实现和扩展,现在ECMAScript 2018来了,我们来看看它的新特性。

ECMAScript的两项新特性已确定,另外四项正在考虑中。


应用广泛的语言ECMAScript 2018来了,新特性都在这里 

作为JavaScript的标准规范,ECMAScript有望在6月发布新的版本。

目前为止,已经确定了纳入ECMAScript 2018规范的两项提案,“这两项都是相当基本的功能,而不是主要的特性,”Mozilla的高级软件工程师Zibi Braniecki说,他参与了ECMAScript的开发。

这两项提案包括:

  • 取消模板字面量的限制,以支持语言的嵌入,包括特定领域的语言(DSLs)。当前对免责条款的限制使这成为一个问题。这次修改可以清除字面量的行为,让它们被运用于DSLs,这样程序员就可以在需要的时候创建自己微语言。

注:模板字面量(Template literals) 是允许嵌入表达式的字符串字面量。可以使用多行字符串和字符串插值功能。它们在ES2015规范的先前版本中被称为“模板字符串(template strings)”。

  • 为正则表达式添加s(dotAll)标志,以提供一致的行为。作者Axel Rauschmeyer说,该功能的目的是解决在正则表达式中,点(.)不匹配行终结者字符的限制,他专注于JavaScript研究。但s标志改变了这一点,它将在选择使用的基础上进行操作,因此现有的正则表达式模式不会受到影响。

Braniecki说,还会对其他四项提案进行考虑,它们将使JavaScript编程更容易,这四项提案包括:

  • Regexp(正则表达式)在后行断言中,利用环视修复了缺点,环视是零宽断言,可以匹配字符串而没有任何消耗。目前,环视断言可用于正向预搜索,而不能用反向预搜索。通过后行断言,开发人员将能够确保模式是否已存在;例如,在不捕捉美元符号的情况下,匹配一美元的金额。

  • Regexp Unicode属性转义,为开发人员提供了一种更好的访问Unicode字符属性的方法。属性转义将以\p{…}和p{…}的形式添加进来。

  • Promise.prototype.finally,当程序员未关闭套接字或未清理内存时,可以编写清除代码。

  • 更新Function.prototype.toString功能,toString()方法将返回一个表示函数源代码的字符串。

Braniecki预计今年的ECMAScript 2018将在浏览器中得以实现,并且已经有一些实现了。

Braniecki认为2018年的ECMAScript将是一个相当保守的版本,明年ECMAScript将会有更强大的能力,并将讨论异步迭代器和扩展类。

获取ECMAScript 2018规范的地方

可以在GitHub上阅读规范草案,还有一份建议清单