Javascript имеет ряд операций с строками, которые могут быть выполнены с ним. Таким образом, у нас есть методы, такие как concat (), slice (), match () и т. Д.

Мой вопрос: все ли эти методы работы со строками возвращают новое строковое значение в качестве результата ИЛИ есть ли методы, которые фактически изменяют фактическую строку, используемую в методе?

1
testndtv 31 Янв 2013 в 11:29

2 ответа

Лучший ответ

Строки в JavaScript (и многих других языках) реализованы как неизменяемые объекты. Это имеет несколько полезных свойств:

  1. Это потокобезопасно, а более конкретно,
  2. Несколько ссылок на одну и ту же строку можно безопасно хранить, не беспокоясь об изменении значения.

Это также означает, что строковые методы all должны возвращать новую строку, если они стремятся изменить исходное значение.

3
Ja͢ck 31 Янв 2013 в 08:41

Возвращаемое значение является клоном исходной строки.

Другими словами, вызов concat, match или slice не изменит исходную строку.

Вы всегда можете обратиться к справке по MDN для документация

Но, чтобы процитировать от источника

< Сильный > Concat

Объединяет текст из двух или более строк и возвращает новую строку .

0
indieman 31 Янв 2013 в 07:39