# Изменение строк JS

В JavaScript строки являются неизменяемыми, это означает, что вы не можете изменить существующую строку. Вместо этого вы всегда создаете новую строку с измененным содержимым.

Существует несколько способов изменения строк в JavaScript. Давайте их разберем.

## Способ 1

Срезы позволяют извлечь часть строки и использовать ее отдельно. Вы также можете использовать их для вставки новой подстроки в существующую строку. Срезы делаются с помощью методов `slice` и `substring`.

Пример:

`let arr = ['a', 'b', 'c', 'd', 'e']; let sub = arr.slice(0, 2); console.log(sub); // ['a', 'b']`

## Способ 2

Метод `replace` позволяет заменить вхождения одной подстроки на другую подстроку. Смотрите пример:

`let str = 'abcde'; let res = str.replace('a', '!'); console.log(res); // '!bcde'`

Данный метод, однако, меняет только первое вхождение строки. Чтобы заменить все вхождения, нужно использовать специальные приемы.

## Способ 3

Несмотря на то, что метод `replace` меняет только первое совпадение, можно заменить все совпадения с помощью цикла:

`let elem = 'a'; let str = 'aaa bbb'; while (str.includes(elem)) { str = str.replace(elem, '!'); } console.log(str); // '!!! bbb'`

## Способ 4

Можно также осуществить все замены с помощью регулярных выражений:

`let str = 'aaa bbb'; let res = str.replace(/a/g, '!'); console.log(str); // '!!! bbb'`

## Способ 5

Поменять символ строки напрямую нельзя, так как строки в JS не изменяемые:

`let str = 'aaa bbb'; str[0] = '!'; console.log(str); // не работает`

Желаемого эффекта, однако, можно добиться с помощью комбинаций методов `split` и `join`:

`let str = 'aaa bbb'; let arr = str.split(''); arr[0] = '!'; let res = arr.join(''); console.log(res); // '!aa bbb'`
← →
↑