JavaScript метод String.prototype.slice()
Определение и применение
JavaScript метод slice() позволяет возвратить новую строку, которая содержит копии символов, вырезанных
из исходной строки.
Индексы и длины здесь измеряются в кодовых единицах UTF-16. Например, "😀".length равно 2;
разрезание по индексу может разделить суррогатную пару. Исходная строка не изменяется.
Границы ограничиваются диапазоном от 0 до длины строки. Если конечная граница не больше начальной, результат пустой.
Без start используется 0; пропущенный end или undefined означает конец строки.
Поддержка браузерами
Спецификация: ecma262
Поддерживается во всех основных браузерах с 2015 года.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
slice | 1 | 12 | 1 | 4 | 1 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 | 1 |
поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31
JavaScript синтаксис
// копирование символов происходит с заданного индекса до конца строки
string.slice( start );
// копирование символов происходит с заданного индекса до определенного индекса
string.slice( start, end );
Спецификация
ECMAScript: String.prototype.slice()
Значения параметров
| Параметр | Описание |
|---|---|
start |
Индекс с которого производится копирование символов из исходной строки. Необязательный параметр, по умолчанию
0.Если в качестве значения индекса указывается отрицательное число, то индекс с которого будет произведено копирование символов рассчитывается как длина строки + start. Если начальный индекс больше или
равен длине строки, то метод slice() вернет пустую строку. Значение NaN (англ.
Not-a-Number, "не число") расценивается равным нулю.
|
end |
Индекс до которого производится копирование символов из исходной строки (символ по указанному индексу не
включается). Необязательный параметр. Если параметр end не используется, то метод
slice() производит копирование символов до конца строки. Если в качестве значения индекса
указывается отрицательное число, то индекс до которого будет произведено копирование символов рассчитывается
как длина строки + end. Значение NaN (англ. Not-a-Number, "не число") расценивается
равным нулю.
|
Примеры, попробуйте сами
В примере «Границы и отрицательные индексы» показан результат вызова метода.
Границы и отрицательные индексы
Измените исходную строку или аргумент метода и сравните результат после запуска.
index.html
<html lang="ru">
<head>
<meta charset="UTF-8" />
<title>Границы и отрицательные индексы</title>
</head>
<body>
<p>Результат выполнения выводится в консоль.</p>
</body>
</html>
main.js
var str = 'Hello world' // инициализируем строковую переменную
console.log(str.slice(0)) // переменная содержит значение "Hello world"
console.log(str.slice(6)) // переменная содержит значение "world"
console.log(str.slice(7, 9)) // переменная содержит значение "or"
console.log(str.slice(-5)) // переменная содержит значение "world"
console.log(str.slice(-4, -2)) // переменная содержит значение "or"
console.log(str.slice(100)) // переменная содержит значение "" (пустая строка)
console.log(str.slice(NaN)) // переменная содержит значение "Hello world"