问答详情
源自:7-8 返回指定的字符串首次出现的位置

js中indexOf()函数使用问题

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>string对象 </title>

<script type="text/javascript">

  var mystr="Hello World!"

  document.write(mystr.indexOf("o",mystr.indexOf("o")+1));//结果返回7

// document.write(mystr.indexOf("o",mystr.indexOf("o"))); 结果返回4,Why?

</script>

</head>

<body>

</body>

</html>



提问者:julyzhu 2015-09-21 11:35

个回答

  • 江之永矣不可方思
    2015-10-25 16:35:40

    两句话中,第一句是从下标4(也就是第五个)的下一个开始检索,不包含位置4那个字符本身(这个字符就是第一次出现的o)。

    第二句话包含第一个o,所以从这里开始检索o的话,第一个当然还是这个本身。所以位置还是4(第五个字符)。而不会是7(第八个字符)。

  • 一朵梨花压海棠的小虫周伯通
    2015-09-21 16:48:33

    本来就是这样的,indexOf两个参数,第一个参数是你要查找的字符串,第二个参数是从哪个位置开始,不过返回的值还是字符串的索引位置。所以,开始位置<=4的时候都是返回4,>4时都是返回7.