这篇文章给大家分享的是有关JS数组中的indexOf方法有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
<强>字符串类型的使用强>
温习一下大家熟知的字符串用法,举个例子
让str=& # 39;橙色# 39;; str.indexOf (& # 39; o # 39;);//0 str.indexOf (& # 39; n # 39;);//3 str.indexOf (& # 39; c # 39;);//1
这里0和3分别是o和n在字符串中出现的位置。起始下标是0。而1代表未匹配。
曾经有人问我为什么偏偏是1不是零代码>或<代码>者<代码>定义> 代码。你去问制定规则的人啊!一脸无奈。
大家看到这里感觉没什么亮点啊,别急接着再来一个例子
让numStr=& # 39; 2016 & # 39;; numStr.indexOf (& # 39; 2 & # 39;);//0 numStr.indexOf (2);//0
看到这里有个小点就是indexOf会做简单的类型转换,<强>把数字转换成字符串& # 39;2 & # 39;然后再执行强>。
<强>数量类型的使用强>
大家可能会想多类型有没有indexOf方法因为会做隐式转换嘛!明确告诉大家没有,上例子
让num=2016; num.indexOf (2);//未捕获TypeError: num.indexOf不是一个函数
非要对数量<代码> 代码>类型使用indexOf方法嘞?那就转换成字符串咯,接着上例来写
//二逼青年的写法 num=& # 39; 2016 & # 39;; num.indexOf (2);//0//普通青年的写法 num.toString () .indexOf (2);//0//文艺青年的写法 (& # 39;& # 39;+ num) .indexOf (2);//0
第一种写法简单直接,对于已知的较短的数字也不是不可行。但是<代码> num> 代码变量针对不同数据是变化的时候,怎么办呢?
第二种写法最为常用,但对比第三种写法长了一点。哈哈,其实都可以,代码洁癖的人喜欢第三种√。
<强>数组类型的使用强>
大家提起精神,大老板来了。
数组方法大家再熟悉不过了,却忽略了数组有indexOf这个方法(我个人感觉)。
干说不练瞎扯淡,遇到了什么问题,注意要点又在哪里?
让arr=[& # 39;橙色# 39;& # 39;2016 & # 39;,& # 39;2016 & # 39;]; arr.indexOf(& # 39;橙色# 39;);//0 arr.indexOf (& # 39; o # 39;);//1 arr.indexOf (& # 39; 2016 & # 39;);//1 arr.indexOf (2016);//1
这里没把例子拆的那么细,四个用例足以说明问题。
<代码> arr.indexOf(橙色# 39;)代码>输出0因为“橙色# 39;是数组的第0个元素,匹配到并返回下标。
<代码> arr.indexOf (' o # 39;) 代码>输出1因为此方法不会在每一个元素的基础上再次执行indexOf匹配。
<代码> arr.indexOf(' 2016 & # 39;) 代码>输出1因为此方法从头匹配直到匹配到时返回第一个数组元素的下表,而不是返回全部匹配的下标。
<代码> arr.indexOf(2016) 代码>输出1注意:这里不会做隐式类型转换。
既然坑已经发现我们不妨刨根问底。去MDN官网一看究竟。对此话题感兴趣的朋友可以直接跳转到Array.prototype.indexOf ()。
只想了解的朋友下面给大家官方的描述。
indexOf()比较searchElement元素数组的使用严格的平等(所使用的相同的方法===或triple-equals操作符)。
一目了然,<强>这里用的是严格等于(===)>强。大家做类似判断的时候多留意。不要误认为数字会转成字符串,同理字符串也不会转换成数字。
<强>总结强>
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
- <李>
字符串:indexOf会将数字0做类型转换,转换为字符串& # 39;0 & # 39;。
李> <李>号码:没有indexOf方法。需要将数字类型转换为字符串。方法有三种。直接字符串,字符串toString,字符串拼接。
李> <李>数组:数组同样有indexOf方法,只不过做类型判断时,使用的严格相等(严格平等),也就是===,
李>感谢各位的阅读!关于JS数组中的indexOf方法有什么用就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到吧!