javascript-循环到单个语句

在我们的一个应用程序中,我们有以下几行:

while (text.indexOf(' ') !== -1)
    text = text.replace(' ', '_');
while (text.indexOf('*') !== -1)
    text = text.replace('*', 'x');

据我所知,我也可以这样写以避免循环:

text = text.replace(/ /g, '_');
text = text.replace(/*/g, 'x');

这两个版本中的哪个版本是更好的编程风格?两者之间有什么区别(性能,结果,错误等)吗?如果可能,我们是否必须避免循环?

解决方法:

我注意到使用正则表达式会使新的(新手/经验不足的)开发人员感到困惑.因此,他们会发现第一个选项更易于阅读和掌握其功能.

但是,第二种选择是:

>简洁明了,也易于阅读(前提是您熟悉正则表达式);
>从理论上讲,它应该更快,因为您要让本机代码完成所有繁重的工作,而不是要求它解释循环代码,而是重新分配字符串变量.但是,正则表达式有一些开销,可能会导致效率低下.但是,它不适用于现实场景,尤其是在这种情况下.

至于错误,如果您在正则表达式字符串中没有任何错误,它不会引发任何错误.具有讽刺意味的是,您做到了(应该转义特殊字符*).因此,这是选择选项1的原因之一:)

text.replace(/\*/g, 'x');
上一篇:如何创建一个在python中给出答案时关闭的循环?


下一篇:哪个效率更高,通过DataTable循环或更多数据库调用?