例如:

for (var idx = 0, len = lines.length; idx < len; idx += 1) {
  /^regexp?/i.test(lines[idx]);
}

以下内容会更有效吗?
var pattern = /^regexp?/i;
for (var idx = 0, len = lines.length; idx < len; idx += 1) {
  pattern.test(lines[idx]);
}

我的理解是,在第一种情况下,将为每次迭代创建一个新的RegExp对象,消耗的内存超过了必需的内存。我的理解是正确的,还是JavaScript引擎执行了使上述示例等效的优化?

最佳答案

缓存的正则表达式will be fasterlines中的元素越多,重新创建同一正则表达式对象所花费的时间就越多。

关于javascript - 在循环中使用JavaScript regexp文字会消耗不必要的内存吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16473180/

10-16 22:13