Der Komma-Operator wertet jeden Operanden (von links nach rechts) aus und gibt den Wert des letzten Operanden zurück. 

Syntax

ausdruck1, ausdruck2, ausdruck3...

Parameter

ausdruck1, ausdruck2, ausdruck3...
Beliebige Ausdrücke.

Beschreibung

Der Komma-Operator kann zur Anwendung kommen um mehrere Ausdrücke an einer Stelle zu verwenden, die einen einfachen Ausdruck benötigt. Der häufigste Anwendungsfall für diesen Operator ist das Bereitstellen mehrerer Parameter in einer for Schleife.

Beispiele

Gegeben ist a in einem 2-dimensionalen Array mit 10 Elementen auf jeder Seite. Der folgende Code verwendet den Komma-Operator um zwei Variablen auf einmal hochzuzählen.

Der folgende Code gibt in der Konsole die Werte der diagonalen Elemente im Array aus:

for (var i = 0, j = 9; i <= 9; i++, j--)
  console.log('a[' + i + '][' + j + '] = ' + a[i][j]);

Zu Beachten ist, dass das Komma in Zuweisungen, wie etwa bei der var Deklaration, nicht den erwarteten Effekt des Komma-Operators zu haben scheint, da Zuweisungen nicht in einem Ausdruck existieren. Im folgenden Beispiel wird a auf den Wert von b = 3 gesetzt (welcher gleich 3 ist), aber c = 4 wird dennoch ausgewertet und dessen Ergebnis wird in der Konsole ausgegeben (i.e., 4). Das ist auf die Operator precedence zurückzuführen.

// Zu Beachten ist, dass nachfolgend globals erstellt werden,
// die im Strict Mode nicht zulässig sind.

a = b = 3, c = 4; // Rückgabe von 4 in der Konsole
console.log(a); // 3 (ganz links)

x = (y = 5, z = 6); // Rückgabe von 6 in der Konsole
console.log(x); // 6 (ganz rechts)

Der Komma-Operator ist völlig anders als das Komma in Arrays, Objekten, Funktionsargumenten und -parametern.

Verarbeitung und anschließende Rückgabe

Ein weiteres Beispiel für die Verwendung des Komma-Operators ist die Verarbeitung vor der Rückgabe. Wie oben beschrieben, wird das letzte Element zurückgegeben, jedoch auch alle weiteren werden verarbeitet. So könnte folgendes gemacht werden:

function myFunc() {
  var x = 0;

  return (x += 1, x); // ist das Gleiche wie return ++x;
}

Spezifikationen

Spezifikation Status Kommentar
ECMAScript Latest Draft (ECMA-262)
Die Definition von 'Comma operator' in dieser Spezifikation.
Lebender Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
Die Definition von 'Comma operator' in dieser Spezifikation.
Standard  
ECMAScript 5.1 (ECMA-262)
Die Definition von 'Comma operator' in dieser Spezifikation.
Standard  
ECMAScript 1st Edition (ECMA-262)
Die Definition von 'Comma operator' in dieser Spezifikation.
Standard Initial definition

Browserkompatibilität

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Grundlegende Unterstützung Ja Ja Ja3 Ja Ja
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Grundlegende Unterstützung Ja Ja Ja Ja Ja Ja Ja

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

Schlagwörter: 
 Mitwirkende an dieser Seite: vssn
 Zuletzt aktualisiert von: vssn,