Pergunta

string.lastIndexOf(searchValue[, fromIndex])

MDN diz que o valor padrão fromIndex é igual astring.length, no entanto, realmente acho que é string.length-1

Mas não importa o que eu acho ... preciso que alguém confirme qual é o valor padrão de fromIndex

Aqui está o que eles dizem:

"Pode ser qualquer número inteiro entre 0 e o comprimento da string. O valor padrão é o comprimento da string."

Foi útil?

Solução

De acordo com ECMAScript 5, será o length da String.

15.5.4.8 String.prototype.lastIndexOf (searchString, position)

Se position for undefined, o length do valor String é assumido, de modo a pesquisar toda a String.

...

  1. Chame CheckObjectCoercible passando este valor como seu argumento.
  2. Deixe S ser o resultado de chamar ToString, fornecendo a este valor como seu argumento.
  3. Seja searchStr ToString(searchString).
  4. Seja numPos ToNumber(position). (Se a posição for indefinida, esta etapa produzirá o valor NaN).
  5. Se numPos for NaN, deixe pos ser +∞;, caso contrário, deixe pos ser ToInteger(numPos).
  6. Seja len o número de caracteres em S.
  7. Deixe start min(max(pos, 0), len).
  8. Seja searchLen o número de caracteres em searchStr.
  9. Retorne o maior número inteiro não negativo possível k não maior que start de modo que k + searchLen não seja maior que len, e para todos os inteiros não negativos j menor que searchLen, o caractere na posição k + j de S é o mesmo que o caractere em posição j de searchStr; mas se não houver tal número inteiro k, então retorne o valor -1.

Outras dicas

Não importa, absolutamente.Como o índice é baseado em zero, string.length e string.length-1 incluirão toda a string.

Você pode testar as diferenças no resultado de maneira bastante simples:

var s = '01923456789abcdef';
alert(s.lastIndexOf('f',s.length+1));
alert(s.lastIndexOf('f',s.length));
alert(s.lastIndexOf('f',s.length-1));
alert(s.lastIndexOf('f',s.length-2));

Isso alerta 16, 16, 16, -1.Assim, se você estiver muito preocupado com alguns ciclos extras sendo usados quando um useragent executa .lastIndexOf(), você pode passar .length-1 e fazer com que ele gaste alguns ciclos extras analisando o parâmetro extra.

Se fromIndex for tão grande ou maior que o comprimento da string, a função retornará -1.

Caso contrário, a string.substring (fromIndex) pesquisa a partir do final da substring.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top