Opérateur de virgule Javascript
-
20-08-2019 - |
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?
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