Javascript:为什么要使用indexOf()来匹配字符串中的值

Javascript: Why would one use indexOf() to match a value in a string?

本文关键字:字符串 为什么 indexOf Javascript      更新时间:2023-11-16

学习javascript时遇到了这样的东西:

if (obj.indexOf("someValue") > -1) {
    do.something();
}

在没有发布整个脚本的情况下,indexOf()方法只用于检查字符串中的值。

我的问题是为什么你会这样做而不是:

if (obj.match(/someValue/g)) {
    do.something();
}

这是为了支持传统浏览器,还是因为某种原因而更快?

我认为原因是RegExp match()确实比indexOf

你可以在这里查看。

从上面的网站只有代码:

<script>
  var str = "hello world!";
</script>

5616069操作/秒使用匹配所花费的时间为±3.05%55%较慢

12306269操作/秒使用indexOf()所用时间为±2.51%最快

match()使用正则表达式,正则表达式比indexOf()慢。

一般来说,这更多的是一个品味问题。有些人可能会争辩说indexOf稍微快一点。

好吧,indexOf()是一个简单的字符串搜索,而obj.match()是regExp搜索。这只是两件不同的事情。

当我需要检查现在是否下雨时,我只是看着窗外,而不是打开电视看天气预报。

附言:顺便说一句,当indexOf()只返回第一次出现时,你的"/g"会进行全局搜索。因此,在您的情况下,随着输入字符串变长,indexOf()变得更快(与obj.match()相比)。