Ho fatto questo semplice test:
codice:
//FOR VS FOR-IN
var ar1 = [];
var ar2 = {}
for(var i = 0; i!=10000; i++) {
	ar1[i] = null;
	ar2['key' + i] = null;
}


var tm1 = tm(); //tm è una funzione che calcola il tempo :D
for(var i = 0; i!=10000; i++) {
	ar1[i] = "stringa";
}
tm1 = tm()-tm1;
var tm2 = tm();
for(var i in ar2) {
	ar2[i] = "stringa";
}
tm2 = tm() -tm2;

alert(tm1 + '\n' + tm2);
Ero partito con l'idea di valutare la velocità del for e del for-in nei browser più diffusi.
Ecco i risultati dei test in millisecondi per ciclare oggetti di 10000 elementi:
FIREFOX 2
for: 16
for-in: 31
IE 6
for: 31
for-in: 47
OPERA 9
for: 16
for-in: 15047
Firefox va benone, entrambi i test vengono eseguiti nello stesso tempo. IE fa un pò di fatica nel for-in, ma niente di grave ( i risultati di IE sono praticamente identici per Safari ).
Ma qui viene il bello: avete visto il risultato di Opera per il for-in???
Qualcuno mi sa spiegare come mai questo valore assurdo? VVoVe: VVoVe: VVoVe: