关于Javascript中的replace()或substr()的性能
Performance about replace() or substr() in Javascript
我想知道使用string.replacement()或string.substr()的Javascript性能。让我解释一下我在做什么。
我有一个类似的字符串
str = "a.aa.a.aa."
我只需要"弹出"str中的最后一个元素,我总是知道它是什么类型的字符(例如,这里是一个点)。
这很简单,我可以遵循很多方法,比如
str = str.substr(0, str.length-1) // same as using slice()
或
str = str.replace(/'.$/, '')
你会使用哪些方法?为什么?使用这种或那种方法的性能是否有所欠缺?字符串的长度可以忽略不计。
(这是我的第一篇帖子,所以如果我做错了什么,请通知我!)
对于JavaScript中的性能测试,请使用jsPerf.com
我在这里为您的问题创建了一个测试用例,它表明substr
要快得多(至少在firefox中)。
如果你只想要字符串中的最后一个字符,那么使用下标,而不是替换:
str[str.length-1]
你必须在一个循环中这样做数千次吗?如果不是(并且"字符串长度可以忽略不计"),任何方式都可以。
也就是说,我更喜欢第一个选项,因为它使修剪最后一个字符的意图比第二个更清晰(哦,而且它更快,以防您do需要运行无数次。因为在regex的情况下,您不仅需要构建一个新字符串,还需要编译一个RegExp并根据输入运行它。)
当你有这种怀疑时,要么选择你最喜欢的(从风格上讲,因为只运行一次并不重要),要么使用http://jsperf.com.
对于这个例子,请参阅为什么substr更好:-)。
substr
方式应该总是比任何类型的RegExp都快。但性能差异应该很小。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 提高JQuery的性能
- 使用正则表达式评估电子邮件地址时出现性能问题
- React:按键的性能提升
- 在Three.js中导出网格会提高性能吗
- 在javascript中搜索项目列表的性能
- 为什么在许多浏览器中drawImage()的性能略好于createPattern()
- JavaScript数组优化以提高性能
- React+Redux性能优化与组件ShouldUpdate
- 在循环中附加事件处理程序时出现浏览器性能问题
- JavaScript-===vs===运算符性能
- 超时功能的性能
- Pg承诺性能提升:在冲突中
- jQuery:使用substr()的另一种方法
- immutable.js与嵌套映射/对象的比较/相等性能
- NodeJ中的注释会影响性能吗
- 如果条件为循环-性能差异
- <脚本类型=“;模块“>负载性能
- 关于Javascript中的replace()或substr()的性能
- split()对substr()的性能