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'
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'
Performance
It is strongly recommended that the assignment operators (+, +=) are used instead of the concat() method.
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.
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
Dla porównania - sklejanie stringów w Javie: