Da for
MDN
for ([initialization]; [condition]; [final-expression])
statement
[Initialization]
e [final-expression]
non sono richiesti intuitivamente, riducendo il costrutto di un semplice while
ciclo. Ma la parte rilevante è:
condizione
Un'espressione da valutare prima di ogni iterazione del ciclo. Se questa espressione è true, viene eseguita un'istruzione. Questo test condizionale è facoltativo. Se omesso, la condizione viene sempre valutata come vera. Se l'espressione restituisce false, l'esecuzione salta alla prima espressione che segue il costrutto for.
(sottolineatura mia)
Questa sembra essere una decisione del tutto arbitraria JS progettazione del linguaggio. Se fosse la mia lingua, probabilmente genererei un errore di sintassi.
Su un lato nota ludica, for(;;){}
è equivalente a while(true){}
, e sembra essere 4 caratteri più breve. Mi chiedo se i minificatori sfruttino questo!
Se non viene fornita alcuna condizione, viene eseguito un ciclo for finché non si interrompe. È lo stesso in C. –
Vedere http://stackoverflow.com/questions/4894120/special-for-loop-syntax/4894256#4894256 - lo stesso in Java e JavaScript come in C e C++. – paxdiablo