Veja um exemplo:
<script type="text/javascript">
texto="meu texto"
document.write(texto.indexOf("e"))
</script>
nesse código acima eu peço para ele ver dentro de "meu texto" e achar a posição da primeira letra "e", no caso retorna 1, você pode pensar que deveria ser 2, porque "e" é a 2ª letra, mas, em JavaScript a primeira ocorrência é 0.
No caso de você buscar uma letra que não exista na string ele retorna "-1".
Agora se quero buscar de traz para frente, ou seja, buscar a última ocorrência, eu uso: lastIndexOf(), exemplo:
<script type="text/javascript">
texto="meu texto"
document.write(texto.lastIndexOf("e"))
</script>
Com base no texto acima ele vai retornar 5, porque o último "e" da string está na posição 5.