<!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>
两句话中,第一句是从下标4(也就是第五个)的下一个开始检索,不包含位置4那个字符本身(这个字符就是第一次出现的o)。
第二句话包含第一个o,所以从这里开始检索o的话,第一个当然还是这个本身。所以位置还是4(第五个字符)。而不会是7(第八个字符)。
本来就是这样的,indexOf两个参数,第一个参数是你要查找的字符串,第二个参数是从哪个位置开始,不过返回的值还是字符串的索引位置。所以,开始位置<=4的时候都是返回4,>4时都是返回7.