IndexOf()方法是用来判断一个字符串是否存在于一个更长的字符串中。从长字符串左端到右端来搜索,如果存在该子字符串就返回它所处的位置(即索引)。如果在被搜索的字符串没有找到要查找的字符串返回-1。注意,这里的位置应当填写索引值。所有的字符串索引都是从零开始,第一个字符的位置就是0,终点位置就是字符串的长度减去1。

该方法等价于C语言中的strstr函数及Visual Basic语言中的inStr函数。这个方法也有一个相应的函数,即lastIndexOf(),从长字符串的右端搜索。

那么问题来了,search()方法也是同样返回目标自字符串索引值的。indexOf()和search()有什么区别呢?为什么时候该使用它,什么时候该使用search()这个方法呢?

首先要明确search()的参数必须是正则表达式,而indexOf()的参数只是普通字符串。indexOf()是比search()更加底层的方法。

如果只是对一个具体字符串来查找,那么使用indexOf()的系统资源消耗更小,效率更高;如果是查找具有某些特征的字符串(比如查找以a开头,后面是数字的字符串),那么indexOf()就无能为力,必须要使用正则表达式和search()方法了。

很多时候用indexOf()不是为了真的想知道子字符串的位置,而是想知道长字符串中没有包含这个子字符串。如果返回索引值是-1,那么说明没有:不等于-1,那么就是有。

所以一般情况下indexOf比search更省资源。

文章转载于http://tieba.baidu.com/p/1620860979

转载于:https://www.cnblogs.com/lift-jt/p/4271942.html

js 重新梳理 1:indexOf与serch 的区别相关推荐

  1. js中substr,substring,indexOf,lastIndexOf的用法

    js中substr,substring,indexOf,lastIndexOf等的用法 1.substr substr(start,length)表示从start位置开始,截取length长度的字符串 ...

  2. js中substr,substring,indexOf,lastIndexOf,split 的用法

    js中substr,substring,indexOf,lastIndexOf,split等的用法 1.substr substr(start,length)表示从start位置开始,截取length ...

  3. js中substr,substring,indexOf,lastIndexOf的用法小结

    2019独角兽企业重金招聘Python工程师标准>>> js中substr,substring,indexOf,lastIndexOf等的用法 1.substr substr(sta ...

  4. Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)

    博客园 首页 新随笔 联系 管理 订阅 <div class="blogStats"><!--done--> 随笔- 556  文章- 38  评论- 77 ...

  5. Node.js event loop 和 JS 浏览器环境下的事件循环的区别

    Node.js  event loop 和 JS 浏览器环境下的事件循环的区别: 1.线程与进程: JS 是单线程执行的,指的是一个进程里只有一个主线程,那到底什么是线程?什么是进程? 进程是 CPU ...

  6. js中onload和jQuery中的ready区别

    js中onload和jQuery中的ready区别 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. ------>不能写多个(如果有多个,只会执行一个) $(do ...

  7. Node.js: fs.readFile/writeFile 和 fs.createReadStream/writeStream 区别

    1. 先说说各自的用法: How do I read files in node.js? fs = require('fs'); fs.readFile(file, [encoding], [call ...

  8. css里面的let,js中let和var定义变量的区别

    javascript 严格模式 第一次接触let关键字,有一个要非常非常要注意的概念就是"javascript 严格模式",比如下述的代码运行就会报错: let hello = ' ...

  9. JS放在head和放在body中的区别

    JS放在head和放在body中的区别 在HTML body部分中的JavaScripts会在页面加载的时候被执行. 在HTML head部分中的JavaScripts会在被调用的时候才执行.一.区别 ...

最新文章

  1. 为什么阿里Java规约禁止使用Java内置Executors创建线程池?
  2. 莫名的_locals属性
  3. 2018企业面试总汇(答案请自行搜罗) 新增19年阿里面题(反向拓展技术栈)
  4. 一款基于.NET Core的认证授权解决方案-葫芦藤1.0开源啦
  5. 【转】ABP源码分析三十九:ABP.Hangfire
  6. springboot启动报错LoggerFactory is not a Logback LoggerContext but Logback...
  7. mock gps android,GitHub - Hilaver/MockGPS: Android application to fake GPS
  8. Proface触摸屏与三菱PLC软件仿真(或连接实体PLC)
  9. 台湾省谷歌高清卫星地图下载
  10. mPaaS 月度小报|魔方卡片(Cube)公测,十个卡片模板任意使用
  11. 利用开源工具搭一套汉英翻译系统(二):词对齐
  12. android跑马灯效果不起作用,Android实现跑马灯效果的方法
  13. kryo java_使用Kryo序列化任意Java对象(获取IllegalAccessError)
  14. 关于Android 12 适配,看这篇就够了
  15. Transformer课程 业务对话机器人Rasa 3.x 运行命令学习
  16. docker 基础知识分享ppt
  17. 计算机经典好书整理收集(持续更新中...)
  18. C++ OpenCV视频操作之CamShift跟踪算法
  19. 与虫子尾交3d动画网站_这六款好用的3D建模软件,总有一款是你想要的!
  20. JNI_编程技术__网文整理

热门文章

  1. 5d4的白平衡模式_佳能5D4有什么白平衡模式
  2. Ubuntu系统的opencv 3.4安装
  3. 中国电信商务领航:网关(2-1)端口映射
  4. Bate冲刺 第四天
  5. 浪潮发布新一代主机天梭M13 可承载大型机应用
  6. 标量衍射理论计算光栅衍射效率
  7. 如何快速有效的学习新领域知识
  8. 元宇宙龙头PlatoFarm,利益社区共享而不是中心化控盘
  9. opencv 保存读取16位深度的图像
  10. 泛珠三角计算机作品大赛2018,我院学子在“2018年广东省大学生计算机作品赛暨泛珠三角+大学生计算机作品赛广东赛区选拨赛”中荣获一等奖...