Строки JS "+" против concat-метода

У меня есть опыт работы с Java, и я знаю, что конкатенация строк с оператором "+" создает новый объект.

Я хотел бы знать, как это сделать в JS наилучшим образом, что для него лучше всего?

Ответ 1

MDN может сказать следующее о string.concat():

Настоятельно рекомендуется использовать операторы конкатенации строк (+, + =) вместо этого метода из соображений производительности

Также смотрите ссылку @Bergi.

Ответ 2

В JS конкатенация "+" работает путем создания нового объекта String.

Например, с...

var s = "Hello";

... у нас есть один объект с.

Следующий:

s = s + " World";

Теперь s новый объект.

2-й метод: String.prototype.concat

Ответ 3

Было время, когда добавление строк в массив и завершение строки с помощью join было самым быстрым/лучшим методом. В наши дни браузеры имеют высоко оптимизированные строковые процедуры и рекомендуется, чтобы методы + и += были самыми быстрыми/лучшими

Ответ 4

  • Мы не можем объединить строковую переменную в целочисленную переменную с помощью функции concat() поскольку эта функция применяется только к строке, а не к целому числу. но мы можем объединить строку в число (целое число), используя оператор +.
  • Как мы знаем, функции работают медленнее, чем операторы. функции должны передавать значения предопределенным функциям и собирать результаты функций. это медленнее, чем выполнение операций с использованием операторов, потому что операторы выполняют операции in-line, но функции, используемые для перехода к соответствующим ячейкам памяти... Итак, как упоминалось в предыдущих ответах, другое отличие, очевидно, заключается в скорости работы.

<!DOCTYPE html>
<html>
<body>

<p>The concat() method joins two or more strings</p>


<p id="demo"></p>
<p id="demo1"></p>

<script>
var text1 = 4;
var text2 = "World!";
document.getElementById("demo").innerHTML = text1 + text2;
//Below Line can't produce result
document.getElementById("demo1").innerHTML = text1.concat(text2);
</script>
<p><strong>The Concat() method can't concatenate a string with a integer </strong></p>
</body>
</html>

Ответ 5

Вы можете попробовать с помощью этого кода (тот же случай)

chaine1 + chaine2; 

Я также предлагаю вам (я предпочитаю это) метод string.concat