Operatore virgola Javascript
-
20-08-2019 - |
Domanda
Quando si combina l'assegnazione con la virgola (cosa che non dovresti fare, probabilmente), in che modo javascript determina quale valore viene assegnato? Considera questi due frammenti:
function nl(x) { document.write(x + "<br>"); }
var i = 0;
nl(i+=1, i+=1, i+=1, i+=1);
nl(i);
E
function nl(x) { document.write(x + "<br>"); }
var i = 0;
nl((i+=1, i+=1, i+=1, i+=1));
nl(i);
I primi output
1
4
mentre il secondo genera
4
4
Cosa ci fanno qui le parentesi?
Soluzione
Stavo confondendo due cose, qui. La prima chiamata a 'nl' è una chiamata di funzione con quattro argomenti. Il secondo è la valutazione della virgola in un argomento.
Quindi, la risposta: il valore di un elenco di espressioni separato da ',' è il valore dell'ultima espressione .
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow