В чем разница между
alert("abc".substr(0,2));
а также
alert("abc".substring(0,2));
Кажется, они оба выводят «ab».
javascript
substring
Разница Двигатель
источник
источник
substring
превосходит все остальные в Chrome .slice
метода,substring
не обрабатывает настройку для отрицательных параметров.substr
метод, иsubstring
метод»? Это действительно предпочтительный метод перегрузки?substr()
том, что вы можете назвать «псевдо-устаревшим» в верхней части страницы документации здесь: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… - Есть ли у кого-нибудь дополнительная информация об этом, например, есть ли какой-либо браузер, который планирует фактически отказаться от использованияsubstr()
в любой момент в будущем? Или, как предположил Стивен Лу, могут быть недостатки производительности при использовании вsubstr()
будущем?Ответы:
Разница во втором аргументе. Второй аргумент
substring
- это индекс, на котором нужно остановиться (но не включающий), но второй аргументsubstr
- это максимальная длина, которую нужно вернуть.Ссылки?
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substr
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/substring
источник
String.prototype.substr()
него устаревший ... (Он определен в Приложении B стандарта ECMA-262, введение которого гласит: «… Программисты не должны использовать или принимать существование этих функций и поведения при написании нового кода ECMAScript.… ")substring
( MDN ) принимает параметры как(from, to)
.substr
( MDN ) принимает параметры как(from, length)
.Обновление : MDN считает
substr
наследство.Вы можете помнить,
substring
берет индексы, как и еще один метод извлечения строки, slice .При запуске с 0 вы можете использовать любой метод.
источник
.substring()
берет индексы. Вы можете помнить, потому что это единственное имя с «я» в названии..slice()
берет показатели тоже.Как указывалось в ответе yatima2975, есть еще одно отличие:
substr()
принимает отрицательную начальную позицию как смещение от конца строки.substring()
не.От MDN :
Итак, подведем итоги функциональных отличий:
substring(begin-offset, end-offset-exclusive)
где начало-смещение0
или большеsubstr(begin-offset, length)
где начало-смещение также может быть отрицательнымисточник
Еще одна ошибка, с которой я недавно столкнулся, заключается в том, что в IE 8 происходит
"abcd".substr(-1)
ошибочное возвращение"abcd"
, тогда как Firefox 3.6 возвращается"d"
так, как должно.slice
работает правильно на обоих.Больше на эту тему можно найти здесь .
источник
Основное отличие состоит в том, что
substr () позволяет указать максимальную длину для возврата
substring () позволяет указывать индексы, а второй аргумент НЕ включается
Есть некоторые дополнительные тонкости между substr () и substring (), такие как обработка равных аргументов и отрицательных аргументов. Также обратите внимание, что substring () и slice () похожи, но не всегда одинаковы.
источник
slice
:"string".slice(2,-2); // "ri"
Разница является вторым параметром. Их вторые параметры, в то время как оба числа, ожидают две разные вещи:
При использовании подстроки вторым параметром является первый индекс, который не включает:
При использовании substr вторым параметром является количество символов, включаемых в подстроку:
источник
Большая разница в том,
substr()
что это устаревший метод, который все еще можно использовать, но его следует использовать с осторожностью, поскольку ожидается, что он будет полностью удален в будущем. Вы должны работать, чтобы удалить их использование из вашего кода. Иsubstring()
метод удался и указал первый.источник
substr()
? Я прочитал это от нескольких человек, но я не могу найти никакой информации в Интернете, которая поддерживает заявление. Кроме того, Mozilla не включает его в список устаревших / устаревших функций: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…String.prototype.substr()
определено в Приложении B стандарта ECMA-262, введение которого гласит: «… Программисты не должны использовать или предполагать существование этих функций и поведения при написании нового кода ECMAScript.…»substr()
действительно отмечен как устаревший в некоторых документах.Методы среза против субстрата против субстроки против []
Есть преимущества в производительности для каждого из этих методов javascript. Пожалуйста, используйте эти функции соответственно.
источник
substring (): имеет 2 параметра: «начало» и «конец».
Если параметр end не указан, извлекаются все символы от начальной позиции до конца строки.
Если значение параметра start больше значения параметра end, этот метод поменяет местами два аргумента. Это означает, что начало будет использоваться как конец, а конец будет использоваться как начало.
substr () : имеет 2 параметра: «старт» и «счет».
Параметр start является обязательным и указывает позицию, с которой начинается извлечение.
Параметр count является необязательным и указывает количество символов для извлечения.
Если параметр count не указан, извлекаются все символы от начальной позиции до конца строки. Если число равно 0 или отрицательно, возвращается пустая строка.
источник
подстрока (startIndex, endIndex (не включены))
substr (startIndex, сколько символов)
источник