为什么 NodeJS 不支持 String.prototype.replaceAll?

Tom*_*Tom 25 v8 node.js

这个字符串方法存在于 browserland 中,但不存在于 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
Run Code Online (Sandbox Code Playgroud)

我不是在要求填充;而是在要求填充。我可以在 single-instance 上执行正则表达式或循环replace。我试图弄清楚为什么这个看似不起眼的功能在 NodeJS 中不存在,尽管它似乎在几乎所有其他 JS 环境中都可用,尽管所有文档都建议我它应该存在。

jfr*_*d00 34

Nodejs v14 有 V8 8.4,但是,replaceAll 已添加到 V8 8.5。Nodejs v15 有 V8 8.6,因此这是第一个可以使用.replaceAll(). 您可以在 Nodejs v15发行说明或此特定更改报告中查看所有描述。

  • @Ryan - 我建议你用你自己的具体情况发布你自己的问题。`.replaceAll()` 存在的节点版本是明确的,因此您的情况必须涉及除此之外的其他内容,并且您自己的问题需要描述您的环境和配置(特别是 webpack 的用途及其配置方式)。对这个问题的评论可能不适合探讨这个问题。 (2认同)