der Komma-Operator ist ein Operator, der innerhalb eines Ausdrucks verwendet werden können. Es wird verwendet, um mehrere verschiedene Ausdrücke zu trennen und hat die Bedeutung "Alle folgenden Ausdrücke auswerten und dann den Wert des letzten Ausdrucks erzeugen." Zum Beispiel:
a = 1, b = 2, c = 3
bedeutet „bewerten a = 1
, dann b = 2
, dann c = 3
bewertet dann auf den Wert des Ausdrucks c = 3
Das Semikolon ist kein Operator und nicht in einem Ausdruck verwendet werden kann es.. wird als Teil der JavaScript-Syntax verwendet, um das Ende eines Ausdrucks zu markieren, die als Aussage behandelt wird. zum Beispiel könnten Sie
a = 1; b = 2; c = 3;
sagen Und das würde bedeuten, „es gibt thr ee-Anweisungen in der Reihenfolge: werte den ersten Ausdruck als erste Anweisung, den zweiten Ausdruck als zweite Anweisung und den dritten Ausdruck als dritte Anweisung aus. "
In dieser Hinsicht sind die beiden nicht vollständig austauschbar. Zum Beispiel können Sie nicht
var a = 1, var b = 2;
Da var a = 1
und var b = 2
Aussagen sind keine Ausdrücke, schreiben und somit nicht durch ein Komma getrennt werden können. Sie müssten hier ein Semikolon verwenden.
(Ein Hinweis: Könnten Sie
var a = 1, b = 2;
sagen, weil die Sprache, die speziell diese Verwendung von Komma als Teil der Syntax einer Deklarationsanweisung erlaubt Hier Komma nicht als Operator verwendet wird..)
Ebenso können Sie nicht
a = (b = 1; c = 2);
sagen, weil hier die rechte Seite des Ausdrucks muss ein Ausdruck sein, keine Aussage, und ;
zu s verwendet wird, getrennte Aussagen. Das innere Semikolon müsste stattdessen ein Komma sein. (Andererseits ist dieser Code in erster Linie ziemlich umständlich und ungewöhnlich, also sollten Sie das wahrscheinlich gar nicht machen!)
Aus stilistischer Sicht wird der Komma-Operator selten benutzt und ist obskur genug stolpere ziemlich kompetente JavaScript-Programmierer. Daher würde ich dringend empfehlen, es nicht zu verwenden und statt dessen die bekannten Konventionen in JavaScript zu verwenden, Semikolons zu verwenden, um Anweisungen zu terminieren, selbst wenn es äquivalent und syntaktisch zulässig wäre, Kommas zu verwenden, um Ausdrücke voneinander zu trennen.
Hoffe, das hilft!
@SteveValliere, mit Ausnahme dieser Frage geht es nicht um Java. –
@SteveValliere dies war eine Javascript-Frage. Die Syntax wäre ungültig java –
Hinweis als Endline-Token, sie sind nicht immer gleichwertig. Dieser Ausschnitt: 'var a = 1, b = 2 'deklariert 2 Variablen mit einer var-Anweisung. Aber in 'var a = 1; b = 2 'ist nun' b 'nicht mehr Teil der var-Anweisung und erzeugt ein implizites globales' b '. –