konkatenacja stringów przez operator plus jest mniej wydajna?

0

Nie jestem frontendowcem a każą mi coś robić. Czy konkatenacja stringow w js w taki sposob jest mniej wydajna od uzywanie jakis funkcji concat czy builderow stringow (o ile takie sa)?

let x = 'part 1'
x += 'part2'
x += 'part3'
2

Performance

It is strongly recommended that the assignment operators (+, +=) are used instead of the concat() method.

źródło

0

To raczej w każdym języku jest tak samo, bo przy każdej operacji trzeba zaalokować nowy string (chyba że kompilator sobie to zoptymalizuje, ale na to lepiej nie liczyć). Użyj tablicy stringów i metody join.

1

A co to za problem sprawdzić?

plus

const start = performance.now();
let p = '';
for (let i = 0; i < 10000000; i += 1) {
    p += 'dupa';
}
const end = performance.now();

console.log(`plus: ${end - start}ms`);

concat

const start = performance.now();
let c = '';
for (let i = 0; i < 10000000; i += 1) {
    c = c.concat('dupa');
}
const end = performance.now();

console.log(`concat: ${end - start}ms`);

Odpalam w node
plus - 882.5009039998986ms
concat - 886.308723000111ms

Możesz sobie też w przeglądarce przetestować, ale czas wygląda na zbliżony.
Pewnie silnik javascript sam sobie optymalizuje oba do low level i na jedno wychodzi.

edit
https://jsbench.me/n5kx66ks1k/1

Tutaj też podobne wyniki

1

Dla porównania - sklejanie stringów w Javie:

1 użytkowników online, w tym zalogowanych: 0, gości: 1