正则表达式字面量在ECMAScript5中的变化
这篇讲的是ECMAScript5对正则表达式字面量规范做出的一系列细微但重要的调整。作者从ECMAScript3留下的歧义和实现不一致问题出发,梳理了ES5规范如何“打补丁”。 核心差异集中在两方面:一是明确了正则表达式字面量在字符集(方括号`[]`)内的转义序列处理规则,禁止了在字符集内使用`\b`(退格)这类歧义写法,统一了行为;二是规范化了正则表达式字面量的静态作用域行为,确保其`lastIndex`属性在每次创建新正则时都能正确重置。 这些变化虽然不引人注目,却直接影响着代码在不同JavaScript引擎间的表现一致性。文章最终指出,理解这些历史遗留的“坑”,对于编写稳健的前端代码和维护旧项目很有帮助。