L'opérateur virgule est un opérateur qui peut être utilisé à l'intérieur d'une expression. Il est utilisé pour séparer plusieurs expressions différentes et a pour signification "évaluer toutes les expressions suivantes, puis produire la valeur de l'expression finale". Par exemple :
a = 1, b = 2, c = 3
signifie "évaluer a = 1
alors b = 2
alors c = 3
puis évaluée à la valeur de l'expression c = 3
.
Le point-virgule n'est pas un opérateur et ne peut pas être utilisé à l'intérieur d'une expression. Il est utilisé dans le cadre de la syntaxe JavaScript pour marquer la fin d'une expression qui est traitée comme une déclaration. Par exemple, vous pourriez dire
a = 1; b = 2; c = 3;
Et cela signifierait "il y a trois déclarations à faire en séquence : évaluer la première expression comme première déclaration, la deuxième expression comme deuxième déclaration, et la troisième expression comme troisième déclaration".
À cet égard, les deux ne sont pas totalement interchangeables. Par exemple, vous ne pouvez pas écrire
var a = 1, var b = 2;
Parce que var a = 1
y var b = 2
sont des déclarations, et non des expressions, et ne peuvent donc pas être séparées par des virgules. Vous devez utiliser un point-virgule ici.
(Une note : vous pourriez dire
var a = 1, b = 2;
car le langage autorise spécifiquement cette utilisation de la virgule dans le cadre de la syntaxe d'une déclaration. Ici, la virgule n'est pas utilisée comme un opérateur).
De même, vous ne pouvez pas dire
a = (b = 1; c = 2);
Parce qu'ici le côté droit de l'expression doit être une expression, et non une déclaration, et que ;
est utilisé pour séparer les déclarations. Le point-virgule intérieur devrait être remplacé par une virgule. (Encore une fois, ce code est plutôt maladroit et inhabituel en premier lieu, donc vous ne devriez probablement pas faire cela du tout).
D'un point de vue stylistique, l'opérateur virgule est rarement utilisé et est suffisamment obscur pour faire trébucher des codeurs JavaScript raisonnablement compétents. Par conséquent, je suggère fortement de ne pas l'utiliser et de suivre les conventions établies en JavaScript concernant l'utilisation du point-virgule pour terminer les déclarations, même s'il serait équivalent et syntaxiquement légal d'utiliser des virgules pour séparer les expressions qui sont chacune utilisées comme des déclarations.
J'espère que cela vous aidera !
0 votes
@SteveValliere, sauf que cette question ne concerne pas Java.
1 votes
@SteveValliere c'était une question sur le javascript. La syntaxe serait invalide en java
0 votes
Notez qu'en tant que jeton de fin de ligne, ils ne sont pas toujours équivalents. Cet extrait :
var a=1,b=2
déclarera 2 variables avec une seule instruction var. Mais envar a=1;b=2
maintenantb
ne fait plus partie de l'instruction var, et crée une instruction globale impliciteb
.0 votes
@The_asMan- On pourrait interpréter cette question comme une question " qu'est-ce qui est mieux ? ", ce qui est généralement mal vu dans la communauté des OS. Nous aimons les questions avec des réponses définitives par oui ou non. Demander les meilleures pratiques tombe souvent dans la catégorie "c'est une excellente question, mais elle n'a pas sa place sur ce site". (Aussi, ce n'était pas mon vote serré).
0 votes
Il pourrait être fermé, mais je me demandais la même chose. Un post opportun. Merci.