Memory Management & Garbage Collection

From a memory efficiency perspective, which approach is generally better?
// Version 1: Using string concatenation
function createHTML(items) {
  let html = '<ul>';
  for (let i = 0; i < items.length; i++) {
    html += '<li>' + items[i] + '</li>';
  }
  html += '</ul>';
  return html;
}

// Version 2: Using array join
function createHTML2(items) {
  const parts = ['<ul>'];
  for (let i = 0; i < items.length; i++) {
    parts.push('<li>' + items[i] + '</li>');
  }
  parts.push('</ul>');
  return parts.join('');
}
Next Question (36/40)