JavaScript метод String.prototype.slice()

Определение и применение

JavaScript метод slice() позволяет возвратить новую строку, которая содержит копии символов, вырезанных из исходной строки.

Индексы и длины здесь измеряются в кодовых единицах UTF-16. Например, "😀".length равно 2; разрезание по индексу может разделить суррогатную пару. Исходная строка не изменяется.

Границы ограничиваются диапазоном от 0 до длины строки. Если конечная граница не больше начальной, результат пустой. Без start используется 0; пропущенный end или undefined означает конец строки.

Поддержка браузерами

Спецификация: ecma262

Поддерживается во всех основных браузерах с 2015 года.

Показать браузеры
Совместимостьjavascript.builtins.String.slice
ВозможностьКомпьютерыМобильные
ChromeEdgeFirefoxOperaSafariChrome AndroidFirefox for AndroidOpera AndroidSafari on iOSSamsung BrowserWebView AndroidWebView on iOS
slice✓1✓12✓1✓4✓1✓18✓4✓10.1✓1✓1.0✓4.4✓1

поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31

JavaScript синтаксис

JavaScript
// копирование символов происходит с заданного индекса до конца строки
string.slice( start );

// копирование символов происходит с заданного индекса до определенного индекса
string.slice( start, end );

Спецификация

ECMAScript: String.prototype.slice()

Значения параметров

String: справочные сведения
Параметр Описание
start Индекс с которого производится копирование символов из исходной строки. Необязательный параметр, по умолчанию 0.
Если в качестве значения индекса указывается отрицательное число, то индекс с которого будет произведено копирование символов рассчитывается как длина строки + start. Если начальный индекс больше или равен длине строки, то метод slice() вернет пустую строку. Значение NaN (англ. Not-a-Number, "не число") расценивается равным нулю.
end Индекс до которого производится копирование символов из исходной строки (символ по указанному индексу не включается). Необязательный параметр. Если параметр end не используется, то метод slice() производит копирование символов до конца строки. Если в качестве значения индекса указывается отрицательное число, то индекс до которого будет произведено копирование символов рассчитывается как длина строки + end. Значение NaN (англ. Not-a-Number, "не число") расценивается равным нулю.

Примеры, попробуйте сами

В примере «Границы и отрицательные индексы» показан результат вызова метода.

Границы и отрицательные индексы

Измените исходную строку или аргумент метода и сравните результат после запуска.

index.html
HTML
<!doctype html>
<html lang="ru">
  <head>
    <meta charset="UTF-8" />
    <title>Границы и отрицательные индексы</title>
  </head>
  <body>
    <p>Результат выполнения выводится в консоль.</p>
  </body>
</html>
main.js
JavaScript
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"