原文
V8发布流程中的第一步就是在Chromium为新的Chrome Beta里程碑创建新分支之前从master分支创建新的分支,频率为每6周。我们最新的发布分支是V8 5.0,它仍然处于beta状态,直到我们随Chrome 50稳定版发布稳定版本。该版本中有一些开发者关注的新特性。
注:5.0这个版本号并不是凸显语义重要,或作为一个主要的版本(也不是次要版本)。
V8 5.0包含一些与正则表达式匹配相关的ES2015特性。
RegExp的 Unicode标识 u
为正则表达式匹配切换到一个新的Unicode模式。Unicode标志将模式和字符串看作一系列Unicode编码。它也为Unicode编码转义带来了一个新的语法。
/????{2}/.test('????????'); // false /????{2}/u.test('????????'); // true //u{76}/u{38}/u.test('v8'); // true //u{1F60A}/u.test('????'); // true
u
标志也让 .
操作符(单字符匹配)能匹配任意Unicode符号,而不是只在基本语面(BMP)上的字符。
var string = 'the ???? train'; /the/s./strain/.test(string); // false /the/s./strain/u.test(string); // true
ES2015包括RegExp子类改变匹配的语义的钩子。子类可以通过重载Symbol.match、Symbol.replace、Symbol.search和Symbol.split命名的方法,来改变RegExp子类与 String.prototype.match
和类似方法之间的表现。
5.0版本也给已经实现的ES2015和ES5特性带来一些显著的性能提升。
rest parameters的实现比前一个版本快8-10倍,使之更有效地在函数调用后收集大量参数到函数中。 Object.keys()
,用于遍历对象的可枚举属性非常有用,跟 for .. in
的返回顺序相同,现在大约2倍快。
请检查我们汇总的API改动。这个文档通常在每次主要发布几周后更新。
活跃开发者可以使用 git checkout -b 5.0 -t branch-heads/5.0
来体验V8 5.0中的新特性。另外也可以订阅Chrome的Beta频道和自己尝试新特性。