我将对行分隔的字符串做一些工作。哪个会更快,首先通过 String.split 分割文本,然后遍历结果数组,还是通过 reg exp 直接遍历整个文本并在途中构造最终数组?
好吧,得到答案的最好方法就是花 2 分钟编写一个循环,双向执行一千次,然后检查 firebug 看看哪个更快;)
在处理 MXHR 时,我必须优化大量字符串修改,根据我的经验,在当前浏览器中,纯字符串方法比 RegExp 快得多。在尽可能短的字符串上使用正则表达式,并使用字符串方法尽您所能。
例如,我在当前代码中使用这个小数字:
var mime = mimeAndPayload.shift().split('Content-Type:', 2)[1].split(";", 1)[0].replace(' ', '');
它很难看,但不管你相信与否,它在高负载下比等效的 RegExp 快得多。
虽然晚了 2.5 年,但希望这有助于为未来的观众阐明这一问题:https://jsperf.app/split-join-vs-regex-replace(包括多个浏览器的基准测试结果,如以及功能基准代码本身)
我预计使用 split() 会快得多。这取决于许多细节、行数与长度、正则表达式的复杂性等。