为什么 NodeJS 不支持 String.prototype.replaceAll?
why doesn't NodeJS support String.prototype.replaceAll?
这个字符串方法存在于浏览器中,但不存在于 Node 中。为什么不?它既不是全新的也不是异国情调的。
- replaceAll 是 ECMA-262 的一部分 src
- replaceAll在V8博客上有详细介绍(v8.1新增)src
- NodeJS 升级到 V8 v8.1 和 NodeJS v14.0 src
还有:
$ node
Welcome to Node.js v14.13.1.
Type ".help" for more information.
> 'asdf'.replaceAll
undefined
我不是要 polyfill;我可以在单个实例 replace
上做一个正则表达式或循环。我试图弄清楚为什么这个看似不起眼的特性在 NodeJS 中不存在,尽管它似乎在几乎所有其他 JS 环境中都可用,即使所有文档都向我建议它应该存在。
Nodejs v14 有 V8 8.4 但是,replaceAll 被添加到 V8 8.5。 Nodejs v15 有 V8 8.6,因此这是第一个可以使用 .replaceAll()
的 nodejs 版本。您可以在 nodejs v15 release notes or in this specific change report.
中看到所有描述
这个字符串方法存在于浏览器中,但不存在于 Node 中。为什么不?它既不是全新的也不是异国情调的。
- replaceAll 是 ECMA-262 的一部分 src
- replaceAll在V8博客上有详细介绍(v8.1新增)src
- NodeJS 升级到 V8 v8.1 和 NodeJS v14.0 src
还有:
$ node
Welcome to Node.js v14.13.1.
Type ".help" for more information.
> 'asdf'.replaceAll
undefined
我不是要 polyfill;我可以在单个实例 replace
上做一个正则表达式或循环。我试图弄清楚为什么这个看似不起眼的特性在 NodeJS 中不存在,尽管它似乎在几乎所有其他 JS 环境中都可用,即使所有文档都向我建议它应该存在。
Nodejs v14 有 V8 8.4 但是,replaceAll 被添加到 V8 8.5。 Nodejs v15 有 V8 8.6,因此这是第一个可以使用 .replaceAll()
的 nodejs 版本。您可以在 nodejs v15 release notes or in this specific change report.