2015-12-20 1 views
2

Est-ce correct? L'affectation b appartient-elle à b déjà déclaré?Affectation de var Javascript

var a, b; 
//...later 
a = 3, b = a * 4; 

Ou il doit être comme ça?

var a, b; 
//...later 
a = 3; 
b = a * 4; 
+0

Les deux fonctionnent. Vous n'avez pas besoin de suivre la même convention lorsque vous déclarez les variables lorsque vous les utilisez. –

+1

Cela fonctionne bien la première façon. Vous auriez pu tout aussi facilement le tester par vous-même. – MinusFour

+1

il est conseillé de ne pas utiliser l'opérateur virgule sur des expressions comme celle-ci, car il est moins lisible pour la plupart des codeurs que des sections distinctes utilisant des points-virgules. C'est l'une des raisons pour lesquelles le code uglify'd est difficile à lire. – dandavis

Répondre

4

mentionnant MDN:

L'opérateur virgule évalue chacune de ses opérandes (de gauche à droite) et retourne la valeur de la dernière opérande.

Ainsi, b = a * 4 sera évalué après a = 3 et conduirait donc à 12.

La différence entre les 2 versions est que celle-ci se compose d'une instruction supplémentaire. Si vous tapez ces instructions l'une après l'autre dans un REPL, vous verrez l'instruction a = 3 évaluée comme 3, ce qui ne se produira pas dans l'ancienne version.