Question

Lors de la combinaison d'une assignation avec une virgule (ce que vous ne devriez probablement pas faire), comment javascript détermine-t-il quelle valeur est assignée? Considérez ces deux extraits:

function nl(x) { document.write(x + "<br>"); }
var i = 0;
nl(i+=1, i+=1, i+=1, i+=1);
nl(i);

Et:

function nl(x) { document.write(x + "<br>"); }
var i = 0;
nl((i+=1, i+=1, i+=1, i+=1));
nl(i);

Les premières sorties

1
4

alors que la deuxième sortie

4
4

Que font les parenthèses ici?

Était-ce utile?

La solution

Je confondais deux choses, ici. Le premier appel à 'nl' est un appel de fonction avec quatre arguments. Le second est l’évaluation de la virgule en un argument.

Donc, la réponse: la valeur d'une liste d'expressions séparées par ',' est le valeur de la dernière expression .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top