Javascript:为什么要使用indexOf()来匹配字符串中的值
Javascript: Why would one use indexOf() to match a value in a string?
学习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()
相比)。
相关文章:
- 为什么我的javascript程序没有将其转换为整数而不是字符串
- 为什么脚本标记被分解为两个字符串
- 为什么错误不能字符串化
- 为什么“{}+1”在Chrome和Firefox中排名第一,而字符串'[object object]1'
- 为什么不是't my元素:使用变量而不是字符串时包含(变量)功?jquery
- 为什么Javascript程序员更喜欢在代码中重复字符串作为常量,而不是使用枚举类型的对象
- 为什么我不能使用jQuery.parseJSON(json)解析json字符串
- 为什么不'将字符串转换为int不正确(parseInt)
- 为什么我得到“;错误:预期"同时访问字符串
- 为什么Javascript中的整数加空格加字符串会导致数字和字符串的总和?(2++'22'=24)
- 为什么 +str 在 JS 中比 str*1 更好地将字符串转换为数字
- 为什么字符串在 ES2015 中是可迭代对象
- 为什么我不必在 JS 中解码/解析 PHP 生成的 JSON 字符串
- 为什么 Javascript 在变量赋值时将 null 转换为字符串
- 为什么我的 React getDOMNode().textContent JavaScript 字符串不等于字符串
- 为什么我在 webpack 中需要 html 文件时会得到一个位置字符串
- 查找映射值,其中键是数组中的字符串.为什么会这样
- 使用数组处理 JavaScript 字符串 为什么它在控制台上打印“R”而不是“Z”
- JQuery.each将字符串文字转换为字符串.为什么?
- 谷歌应用脚本正在改变我的数组成字符串.为什么