aboutsummaryrefslogtreecommitdiff
path: root/files/de/web/javascript/reference/operators/comma_operator/index.html
blob: be04c939a6bf5ef47074afa368d65b007a9b0f7d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
---
title: Kommaoperator
slug: Web/JavaScript/Reference/Operators/Comma_Operator
tags:
  - JavaScript
  - Operator
translation_of: Web/JavaScript/Reference/Operators/Comma_Operator
---
<div>{{jsSidebar("Operators")}}</div>

<p>Der<strong> Kommaoperator</strong> wertet jeden Operanden (von links nach rechts) aus und gibt den Wert des letzten Operanden zurück.</p>

<div>{{EmbedInteractiveExample("pages/js/expressions-commaoperators.html")}}</div>



<h2 id="Syntax">Syntax</h2>

<pre class="syntaxbox"><em>ausdruck1</em>, <em>ausdruck2, ausdruck3...</em></pre>

<h2 id="Parameter">Parameter</h2>

<dl>
 <dt><code>ausdruck1, ausdruck2, ausdruck3...</code></dt>
 <dd>Beliebige Ausdrücke.</dd>
</dl>

<h2 id="Beschreibung">Beschreibung</h2>

<p>Der Kommaoperator kann eingesetzt werden, um mehrere Ausdrücke an einer Stelle zu verwenden, die nur einen Ausdruck erwartet. Der häufigste Anwendungsfall für diesen Operator ist das Bereitstellen mehrerer Parameter in einer <code>for</code> Schleife.</p>

<h2 id="Beispiele">Beispiele</h2>

<p>Gegeben ist <code>a</code> in einem 2-dimensionalen Array mit 10 Elementen auf jeder Seite. Der folgende Code verwendet den Kommaoperator um zwei Variablen auf einmal hochzuzählen.</p>

<p>Der folgende Code gibt in der Konsole die Werte der diagonalen Elemente im Array aus:</p>

<pre class="brush:js;highlight:[1]">for (var i = 0, j = 9; i &lt;= 9; i++, j--)
  console.log('a[' + i + '][' + j + '] = ' + a[i][j]);</pre>

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

<pre class="brush: js">// 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)
</pre>

<p>Der Kommaoperator ist völlig anders als das Komma in Arrays, Objekten, Funktionsargumenten und -parametern.</p>

<h3 id="Verarbeitung_und_dann_zurückgeben">Verarbeitung und dann zurückgeben</h3>

<p>Ein weiteres Beispiel für die Verwendung des Kommaoperators 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:</p>

<pre class="brush: js">function myFunc() {
  var x = 0;

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

<h2 id="Spezifikationen">Spezifikationen</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Spezifikation</th>
   <th scope="col">Status</th>
   <th scope="col">Kommentar</th>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-comma-operator', 'Comma operator')}}</td>
   <td>{{Spec2('ESDraft')}}</td>
   <td> </td>
  </tr>
  <tr>
   <td>{{SpecName('ES6', '#sec-comma-operator', 'Comma operator')}}</td>
   <td>{{Spec2('ES6')}}</td>
   <td> </td>
  </tr>
  <tr>
   <td>{{SpecName('ES5.1', '#sec-11.14', 'Comma operator')}}</td>
   <td>{{Spec2('ES5.1')}}</td>
   <td> </td>
  </tr>
  <tr>
   <td>{{SpecName('ES1', '#sec-11.14', 'Comma operator')}}</td>
   <td>{{Spec2('ES1')}}</td>
   <td>Initiale Definition</td>
  </tr>
 </tbody>
</table>

<h2 id="Browserkompatibilität">Browserkompatibilität</h2>



<p>{{Compat("javascript.operators.comma")}}</p>

<h2 id="Siehe_auch">Siehe auch</h2>

<ul>
 <li><a href="/en-US/docs/Web/JavaScript/Reference/Statements/for">for Schleife</a></li>
</ul>