ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript-循环到单个语句

2019-10-27 02:46:22  阅读:134  来源: 互联网

标签:loops replace javascript jquery


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

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');

标签:loops,replace,javascript,jquery
来源: https://codeday.me/bug/20191027/1941428.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有