Sto avendo difficoltà a capire come questo per-ciclo termina in JavaScript:Perché "undefined" termina un ciclo in JavaScript?
var files = ["A", "B"];
for (var i = 0, f; f = files[i]; i++) {
console.log(f);
}
Quando viene eseguito, visualizza A e B sullo schermo, ma perché f = file [2] Fine del ciclo? Se eseguo f=files[2]
nella mia console ottengo la risposta "indefinita", quindi qual è la logica alla base del fatto che questo dovrebbe terminare il ciclo?
Domanda bonus: Perché non scrivere il ciclo invece come segue?
for (var i=0; i < files.length; i++) {
f = files[i];
console.log(f);
}
Questo sembra più chiara e più gestibile per me, è così c'è qualche motivo che il primo pezzo di codice sarebbe stato utilizzato nel corso del secondo?
risposta bonus: perché il primo frammento di codice salva l'intera riga di codice – Igor
Preferisco il secondo per consistenza in un caso in cui l'array potrebbe avere qualche valore di falsy valido come 'false',' indefinito', 'null' o' 0 '. – Prusse
@I file di Igor [i] potrebbero essere facilmente inclusi nella seconda riga invece di f, quindi la riga aggiuntiva non è necessaria. questo è il modo in cui l'op lo ha scritto – rdans