Javascript:为什么要使用indexOf()来匹配字符串中的值?
在学习javascript时遇到了如下情况:Javascript:为什么要使用indexOf()来匹配字符串中的值?,javascript,indexof,Javascript,Indexof,在学习javascript时遇到了如下情况: if (obj.indexOf("someValue") > -1) { do.something(); } 没有发布整个脚本,indexOf()方法仅用于检查字符串中的值 我的问题是,为什么你会这样做,而不是: if (obj.match(/someValue/g)) { do.something(); } 这是为了传统浏览器支持还是出于某种原因而更快?match()使用regex,regex比indexOf()慢我认为原
if (obj.indexOf("someValue") > -1) {
do.something();
}
没有发布整个脚本,indexOf()方法仅用于检查字符串中的值
我的问题是,为什么你会这样做,而不是:
if (obj.match(/someValue/g)) {
do.something();
}
这是为了传统浏览器支持还是出于某种原因而更快?
match()
使用regex,regex比indexOf()慢我认为原因是RegExpmatch()
确实比indexOf
慢
你可以查一下
仅从上述站点获取代码:
<script>
var str = "hello world!";
</script>
var str=“你好,世界!”;
5616069次/s使用匹配所用时间为±3.05%55%较慢
12306269次/s使用indexOf()所用时间为±2.51%最快
一般来说,这实际上更多的是一个品味问题。有些人可能会认为indexOf稍微快一些。嗯,indexOf()
是一个简单的字符串搜索,而obj.match()
是regExp搜索。这只是两件不同的事情
当我需要检查现在是否下雨时,我只是看着窗外,而不是打开电视看天气预报
注意:顺便说一句,当indexOf()
只返回第一个匹配项时,您的“/g
”进行全局搜索。因此,在您的情况下,indexOf()
会随着输入字符串变长而变得更快(与obj.match()
相比)。因为正则表达式速度较慢。性能可能是答案: