简单了解JS 中的indexOf方法
indexOf() 方法返回指定值在字符串对象中首次出现的位置。从 fromIndex 位置开始查找,如果不存在,则返回 -1。
首先先看下MDN下的参考文档,文档里列出的很详细,这里我只列出了注意点;
1)String对象下的方法
语法:
str.indexOf(searchValue[,fromIndex])
区分大小写:
indexOf 方法区分大小写。例如,下面的表达式返回 -1:
"Blue Whale".indexOf("blue") // returns -1
检测是否存在某字符串:
当检测某个字符串是否存在于另一个字符串中时,可使用下面的方法:
"Blue Whale".indexOf("Blue") !== -1; // true
"Blue Whale".indexOf("Bloe") !== -1; // false12
详细文档请戳这里String.prototype.indexOf()
2)Object对象下的方法
语法:
arr.indexOf(searchElement[, fromIndex = 0])
详细文档请戳这里Array.prototype.indexOf();
indexOf()方法在判断比较值得注意的是,indexOf 使用strict equality (无论是 ===, 还是 triple-equals操作符都基于同样的方法)进行判断searchElement与数组中包含的元素之间的关系;需要使用(===)
3)举例子
var array = [2, 5, 9];
array.indexOf(2); // 0 下标位置array.indexOf(7); // -1
上面的例子中, 0 是 2 在字符串中出现的位置。起始下标是 0。而 -1 代表未匹配。
var indices = [];
var array = ['a', 'b', 'a', 'c', 'a', 'd'];
var element = 'a';
var idx = array.indexOf(element);
while (idx != -1) {
indices.push(idx);
idx = array.indexOf(element, idx + 1);
}
console.log(indices);// [0, 2, 4]
上面的例子是找出指定元素出现的所有位置。
4)String和Number类型的使用
先来个例子
var numStr = '2016';
numStr.indexOf('2'); //
numStr.indexOf(2); //
看到这里大家是否有所思考?数字,字符,这不是转换了么?
看来在执行过程中是把数字2转换成字符串'2'了。
然后在顺路看一下这个
var num = 2016;
num.indexOf(2);
最后的结果输出什么呢?是输出0还是其他的答案?
那就来看看谷歌控制台的结果吧!

哇哦,报错了,结果就不能进行隐士转换咯!
错误信息显示不是一个函数,Uncaught TypeError: num.indexOf is not a function
那正确的使用方法是什么呢?请看下面代码
//方法一
num = '2016';
num.indexOf(2); // //方法二
num.toString().indexOf(2); // //方法三
(num+'').indeOf(2);//
以上三种写法看个人喜爱选择哪种咯!反正我是怎么方便怎么来。
参考链接:http://www.jb51.net/article/94627.htm
http://blog.163.com/very_apple/blog/static/2775923620109273237597/
感谢上面两位博主!
简单了解JS 中的indexOf方法的更多相关文章
- JS中通过call方法实现继承
原文:JS中通过call方法实现继承 讲解都写在注释里面了,有不对的地方请拍砖,谢谢! <html xmlns="http://www.w3.org/1999/xhtml"& ...
- jQuery与JS中的map()方法使用
1.jquery中的map()方法 首先看一个简单的实例: $("p").append( $("input").map(function(){ return $ ...
- js中的tostring()方法
http://blog.sina.com.cn/s/blog_85c1dc100101bxgg.html js中的tostring()方法 (2013-11-12 11:07:43) 转载▼ 标签: ...
- 秒味课堂Angular js笔记------Angular js中的工具方法
Angular js中的工具方法 angular.isArray angular.isDate angular.isDefined angular.isUndefined angular.isFunc ...
- JavaScript -- 时光流逝(二):js中数组的方法
JavaScript -- 知识点回顾篇(二):js中数组的方法 1. 数组 (1)定义数组,数组赋值 <script type="text/javascript"> ...
- ASP.NET#使用母版时,如果要使用js中的getElementById()方法取得某个内容页的元素时要注意的问题
当使用母版,要使用js中的getElementById()方法取得某个内容页的元素时,所选取的id并不是母版中内容页的id,而是在设计内容页时设定的id例子:母版页: ...... <head ...
- JS与OC交互,JS中调用OC方法(获取JSContext的方式)
最近用到JS和OC原生方法调用的问题,查了许多资料都语焉不详,自己记录一下吧,如果有误欢迎联系我指出. JS中调用OC方法有三种方式: 1.通过获取JSContext的方式直接调用OC方法 2.通过继 ...
- JS中split使用方法和数组中元素的删除
JS中split使用方法和数组中元素的删除 JS中split使用方法 <script language="javascript"> function spli(){ d ...
- JS中的splice方法
JS中的splice方法 定义和用法 splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目. 注释:该方法会改变原始数组(集合). 语法 arrayObject.splice(ind ...
随机推荐
- 如何在springmvc的请求过程中获得地址栏的请求
由于spring的dispatchservlet会通过当前的handlermapping来将当前地址栏的请求映射为实际的项目目录结构,所以使用普通的request.getRequestURL()是无法 ...
- 一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10
行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10 2012-04-25 16:29:04| 分类: 学习 |字号 订阅 在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE ...
- 搜索技巧<转>
平时工作,搜索引擎是少不了的,作为程序员,当然首推 Google.这里简单介绍下几个 Google 搜索的小技巧,方便别人也方便自己查阅. ps:以下所有操作,均可以在 「谷歌搜索首页 -> 设 ...
- Struts 2
<默认>execute -- 默认方法success -- 默认返回值 <配置><package><package name="default&qu ...
- 【BZOJ1700】[Usaco2007 Jan]Problem Solving 解题 动态规划
[BZOJ1700][Usaco2007 Jan]Problem Solving 解题 Description 过去的日子里,农夫John的牛没有任何题目. 可是现在他们有题目,有很多的题目. 精确地 ...
- Linux内核笔记——内存管理之slab分配器
内核版本:linux-2.6.11 内存区和内存对象 伙伴系统是linux用于满足对不同大小块内存分配和释放请求的解决方案,它为slab分配器提供页框分配请求的实现. 如果我们需要请求具有连续物理地址 ...
- EF CodeFirst 使用T4模板 生成文件
小编是个实用主义者,并没有深入的去理解T4的原理.只是根据自己的需求,在博客园里的前辈哪里找的资料,结合自己的理解,在项目中使用了T4模板. 最近的项目用了他,很方便,节省了不少代码量. 想利用T4做 ...
- 由overflow-x:scroll产生的收获
我们都知道float:left属性会让元素向左浮动,如果用一个div将几个左浮动的li包起来,是不是div的宽度被li撑得很长很长呢,代码: <!DOCTYPE html> <htm ...
- SpringMVC4零配置--web.xml
servlet3.0+规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置. ServletContainerInitiali ...
- 踏上Salesforce的学习之路(一)
相信通过前面的学习,大家已经拥有了一个属于自己的Salesforce开发者账号,下面,我们将用这个账号正式踏上Salesforce的学习之路. 首先,点击网址:https://developer.sa ...