Premetto che può benissimo sembrare una domanda stupida ma in effetti un problemino c'è...
Da quello che ho sempre studiato scrivere, per un ciclo for:
equivale a:codice:var counter = 0; for (counter; counter<10; counter++) { .... }
Semplicemente nel secondo caso prima si dichiara la variabile e poi la si inizializza.codice:var counter; for (counter=0; counter<10; counter++) { .... }
Correggetemi se sbaglio.
Se ho ragione, prendiamo due semplicissimi cicli for annidati:
codice:var decine=0; var unita=0; for (decine; decine < 3; decine++) { for (unita; unita < 10; unita++) { document.write(decine + "" + unita + " "); } }
Nel primo caso però il ciclo for esterno non passa alla seconda iterazione, cioè le decine non vengono incrementate, e di conseguenza vengono stampati solo i numeri da 00 a 09... provare per credere.codice:var decine; var unita; for (decine=0; decine < 3; decine++) { for (unita=0; unita < 10; unita++) { document.write(decine + "" + unita + " "); } }
E' un mio errore di concetto ritenere le due sintassi uguali o è effettivamente normale questo comportamento?
PS: con PHP ho lo stesso problema.
Grazie.

Rispondi quotando
quello che volevo dire è che la sintassi che ti ho proposto è utile per per evitare sia problemi di inizializzazione che di scoping.
