String.prototype.slice()
========================

Сводка
------

Метод **`slice()`** извлекает часть строки и возвращает новую строку без изменения оригинальной строки.

Интерактивный пример
--------------------

Синтаксис
---------
```

str.slice(beginIndex[, endIndex])
```

### Параметры

*`beginIndex`*

Индекс, с которого начинать извлечение (нумерация начинается с нуля). Если аргумент отрицателен, то трактуется как `str.length + beginIndex` (например, если *`beginIndex`* равен `-3`, то он трактуется как `str.length - 3`). Если *`beginIndex`* не является числом при проверке `Number(beginIndex)`, он трактуется как `0`.

Если `beginIndex` больше или равен `str.length`, возвращается пустая строка.

*`endIndex`*

Индекс, *перед* которым заканчивать извлечение (нумерация начинается с нуля). Символ по этому индексу не будет включён.

Если \*`endIndex` \*опущен или является `undefined` или больше чем `str.length`, `slice()` извлечёт всё до конца строки. Если аргумент отрицателен, то трактуется как `str.length + endIndex` (например, если `endIndex` равен `-3`, то он трактуется как `str.length - 3`). Если аргумент не `undefined` и не является числом при проверке `Number(endIndex)`, возвращается пустая строка.

Если *`endIndex`* указан и меньше *`startIndex`*, то возвращается пустая строка (например, `slice(-1, -3)` или `slice(3, 1)` вернут `""`).

### Возвращаемое значение

Новая строка, содержащая извлечённую часть строки.

Описание
--------

Метод `slice()` извлекает текст из одной строки и возвращает новую строку. Изменения текста в одной строке не влияют на другую строку.

Метод `slice()` извлекает все символы до индекса *`endIndex`*, не включая сам этот индекс. Вызов `str.slice(1, 4)` извлечёт символы со второго по четвёртый (символы под индексами `1`, `2` и `3`).

К примеру, вызов `str.slice(2, -1)` извлечёт символы с третьего по второй с конца строки.

Примеры
-------

### Пример: использование метода `slice()` для создания новой строки

В следующем примере метод `slice()` используется для создания новой строки.


```js
let str1 = "Приближается утро.";
let str2 = str1.slice(1, 8);
let str3 = str1.slice(4, -2);
let str4 = str1.slice(12);
let str5 = str1.slice(30);

console.log(str2); // ВЫВОД: риближа
console.log(str3); // ВЫВОД: лижается утр
console.log(str4); // ВЫВОД: утро.
console.log(str5); // ВЫВОД: ""
```

### Пример: использование метода `slice()` с отрицательными индексами

В следующем примере метод `slice()` используется вместе с отрицательными индексами.


```js
let str = "Приближается утро.";
str.slice(-3); // вернёт 'ро.'
str.slice(-3, -1); // вернёт 'ро'
str.slice(0, -1); // вернёт 'Приближается утро'
```


В этом примере начальным индексом считается `11`-й символ с конца строки, а конечным - `16`-й с начала.


```js
str.slice(-11, 16); // вернёт 'ается утр'
```


Здесь начальным индексом считается `6`-й символ от начала строки, а конечным - 7-й с конца.


```js
str.slice(6, -7); // вернёт 'жаетс'
```


В этом примере оба индекса считаются с конца строки: 5-й для начального индекса, `1`-й для конечного.


```js
str.slice(-5, -1); // вернёт 'утро'
```

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

| Specification |
| --- |
| ECMAScript Language Specification # sec-string.prototype.slice |

Совместимость с браузерами
--------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Смотрите также
--------------

* `String.prototype.substr()`
* `String.prototype.substring()`
* `Array.prototype.slice()`