Вопрос

string.lastIndexOf(searchValue[, fromIndex])

Мд Говорит, что fromIndex значение по умолчанию равно string.length, однако, я действительно думаю, что это string.length-1

Но не имеет значения, что я думаю ... мне нужен кто -то, чтобы подтвердить, что такое значение по умолчанию fromIndex

Вот что они говорят:

«Это может быть любое целое число между 0 и длиной строки. Значение по умолчанию - длина строки».

Это было полезно?

Решение

Согласно Ecmascript 5, это будет length строки.

15.5.4.8 string.prototype.lastindexof (SearchString, Position)

Если position является undefined, length предполагается строковое значение, чтобы искать всю строку.

...

  1. Вызов CheckObjectCoercible Пропустить это значение как его аргумент.
  2. Позволять S быть результатом звонка ToString, давая ему это значение как его аргумент.
  3. Позволять searchStr быть ToString(searchString).
  4. Позволять numPos быть ToNumber(position). Анкет (Если позиция не определена, этот шаг дает значение NaN).
  5. Если numPos является NaN, пусть POS будет +∞; В противном случае, пусть pos быть ToInteger(numPos).
  6. Позволять len быть количеством символов в S.
  7. Позволять start min(max(pos, 0), len).
  8. Позволять searchLen быть количеством символов в searchStr.
  9. Вернуть максимально возможное неотрицательное целое число k не больше, чем запуск, так что K+ Searchlen не больше, чем Len, и для всех нетригативных целых чисел J меньше, чем Sypeclen, персонаж в положении K+ j of S такой же, как и персонаж в позиции j of Searchstr; Но если нет такого целого числа k, то верните значение -1.

Другие советы

Это не имеет значения, вообще. Поскольку индекс на основе нуля, оба string.length а также string.length-1 будет включать всю строку.

РЕДАКТИРОВАТЬ

Вы можете протестировать различия в результате довольно просто:

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));

Это предупреждает 16, 16, 16, -1. Таким образом, если вы очень обеспокоены тем, что используются лишние лишние циклы, когда пользовательский агент работает .lastIndexOf(), вы можете пройти .length-1 И пусть он потратит несколько дополнительных циклов, анализируя дополнительный параметр.

Если от Index такой же большой или больше длины строки, функция возвращает -1.

Если нет, то строка

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top