slice() для строк в JavaScript

slice() возвращает часть строки.

let text = 'JavaScript';

console.log(text.slice(0, 4));

Результат:

Java

Метод взял символы с индекса 0 до индекса 4. Сам индекс 4 в результат не попал.

Что такое slice()

slice() - это метод строки, который вырезает часть строки и возвращает ее как новую строку.

let message = 'Привет, Анна';

console.log(message.slice(8, 12));

Результат:

Анна

Метод не удаляет текст из исходной строки. Он только возвращает нужную часть.

Синтаксис

Основная запись выглядит так:

string.slice(start, end);

start - индекс, с которого начинаем брать символы.

end - индекс, перед которым нужно остановиться.

let word = 'JavaScript';

console.log(word.slice(4, 10));

Результат:

Script

Начальный и конечный индекс

Первый аргумент указывает, где начать, второй - где остановиться.

let word = 'JavaScript';

console.log(word.slice(0, 4));
console.log(word.slice(4, 10));

Результат:

Java
Script

В строке ‘JavaScript’ слово ‘Java’ занимает индексы от 0 до 3, поэтому вторым аргументом передаем 4.

Конечный индекс не включается

Второй аргумент slice() не попадает в результат.

let word = 'котенок';

console.log(word.slice(0, 3));

Результат:

кот

Метод взял символы с индексами 0, 1 и 2. Символ с индексом 3 уже не взял.

Один аргумент

Если передать только один аргумент, slice() вернет строку от этого индекса до конца.

let word = 'JavaScript';

console.log(word.slice(4));

Результат:

Script

Так удобно отрезать начало строки.

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

slice() поддерживает отрицательные индексы. Они считаются с конца строки.

let word = 'JavaScript';

console.log(word.slice(-6));

Результат:

Script

-1 означает позицию последнего символа, -2 - предпоследнего и так дальше.

Можно указать два отрицательных индекса.

let word = 'JavaScript';

console.log(word.slice(-6, -3));

Результат:

Scr

Если начало больше конца

Если начальный индекс больше конечного, slice() вернет пустую строку.

let word = 'JavaScript';

console.log(word.slice(6, 2));

Результат:

slice() не меняет аргументы местами. Он просто не может взять символы в таком порядке.

Строка не меняется

slice() не изменяет исходную строку. Он возвращает новое значение.

let word = 'JavaScript';
let part = word.slice(0, 4);

console.log(word);
console.log(part);

Результат:

JavaScript
Java

Если результат нужен дальше, его записывают в переменную.

Итого

slice() используют, чтобы получить часть строки.

  • slice(start, end) возвращает часть строки от start до end.
  • Конечный индекс не включается в результат.
  • Если передать один аргумент, метод вернет строку от него до конца.
  • Отрицательные индексы считаются с конца строки.
  • Исходная строка не меняется.