Problem Statement
Which is the most efficient way to concatenate strings in a loop?
Explanation
For concatenating strings in a loop, array join is most efficient.
Using the plus operator in a loop creates a new string on each iteration, which is slow for large loops.
Push strings into an array, then join them at the end. This is much faster.
Modern JavaScript engines optimize string concatenation, but join is still best practice for loops.
For simple concatenation outside loops, plus operator or template literals are fine.
Concat method is rarely used in modern code.
Code Solution
SolutionRead Only
// SLOW - using + in loop
let result1 = '';
for (let i = 0; i < 1000; i++) {
result1 += 'string' + i; // Creates new string each time
}
// FAST - using array join
const arr = [];
for (let i = 0; i < 1000; i++) {
arr.push('string' + i);
}
const result2 = arr.join(''); // One operation at end
// Simple concatenation (outside loops)
// Using + operator
const str1 = 'Hello' + ' ' + 'World';
// Using concat()
const str2 = 'Hello'.concat(' ', 'World');
// Using template literals (preferred)
const name = 'John';
const str3 = `Hello ${name}`;
// Array join for multiple strings
const parts = ['Hello', 'World', 'JavaScript'];
const joined = parts.join(' ');
console.log(joined); // 'Hello World JavaScript'
// Building HTML
const items = ['Apple', 'Banana', 'Orange'];
const html = items.map(item => `<li>${item}</li>`).join('');
console.log(html); // '<li>Apple</li><li>Banana</li><li>Orange</li>'
// Performance comparison
console.time('plus');
let s1 = '';
for (let i = 0; i < 10000; i++) s1 += i;
console.timeEnd('plus');
console.time('join');
const arr2 = [];
for (let i = 0; i < 10000; i++) arr2.push(i);
const s2 = arr2.join('');
console.timeEnd('join'); // Much faster!