2009-02-02 17 views
0

Lors de la combinaison d'une affectation avec une virgule (ce que vous ne devriez probablement pas faire), comment javascript détermine-t-elle quelle valeur est assignée? Tenez compte de ces deux extraits:Opérateur de virgule Javascript

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 

tandis que les secondes sorties

4 
4 

Quelles sont les parenthèses ici?

Répondre

3

Je confondais deux choses, ici. Le premier appel à 'nl' est un appel de fonction avec quatre arguments. La seconde 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 value of the last expression.

+0

Eh bien, au moins vous avez une petite question "que fait ce code" maintenant. :) – Shog9