Questo è un esempio discusso tempo fa

1) stringa non ottimizzata
codice:
function Button2_onclick() 
{
    if(typeof(sjs) == 'undefined') {alert('vettore non caricato');return;};
    var o = new TempoOperazione();
    o.Start();
    var sb = "<select>";
    for(var i = 0; i < sjs.length; i++)
        sb += '<option value="' + sjs[i][0] + '">' + sjs[i][1] + '</option>';
    sb += "</select>";
    $("div1").innerHTML = sb;
    alert(o.Secondi());
}
2) stringa ottimizzata
codice:
function Button1_onclick() 
{
    if(typeof(sjs) == 'undefined') {alert('vettore non caricato');return;};
	var	o = new TempoOperazione();
	o.Start();
	var sb = ["<select>"];
	for(var i = 0, j = sjs.length; i < j; i++)
		sb.push('<option value="', sjs[i][0], '">', sjs[i][1], '</option>');
	sb.push("</select>");
	$("div1").innerHTML = sb.join("");
	alert(o.Secondi());
};
con IE7 la differenza tra le due soluzioni è 0.172 secondi contro 22.3 secondi (in un test informale)

Con Opera e Firefox non serve ottimizzare perchè ottimizzano da soli ed i tempi, sempre nel solito test informale è dell'ordine di 0.1-0.3 secondi