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?

È stato utile?

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
scroll top