diff options
Diffstat (limited to 'files/de/web/javascript/reference/operators/zuweisungsoperator/index.html')
-rw-r--r-- | files/de/web/javascript/reference/operators/zuweisungsoperator/index.html | 412 |
1 files changed, 412 insertions, 0 deletions
diff --git a/files/de/web/javascript/reference/operators/zuweisungsoperator/index.html b/files/de/web/javascript/reference/operators/zuweisungsoperator/index.html new file mode 100644 index 0000000000..f0ab62f255 --- /dev/null +++ b/files/de/web/javascript/reference/operators/zuweisungsoperator/index.html @@ -0,0 +1,412 @@ +--- +title: Zuweisungsoperator +slug: Web/JavaScript/Reference/Operators/Zuweisungsoperator +tags: + - JavaScript + - Operator +translation_of: Web/JavaScript/Reference/Operators#Assignment_operators +--- +<div>{{jsSidebar("Operators")}}</div> + +<p>Ein <strong>Zuweisungsoperator</strong> weist dem linken Operanten einen Wert auf Basis des rechten Operanten zu.</p> + +<div>{{EmbedInteractiveExample("pages/js/expressions-assignment.html")}}</div> + + + +<h2 id="Überblick">Überblick</h2> + +<p>Der Basiszuweisungsoperator ist das Gleich (<code>=</code>), welches den Wert des rechten Operanten dem linken Operanten zuweist. So wird bei <code>x = y</code> der Wert von <code>y</code> <code>x</code> zugewiesen. Die anderen Zuweisungsoperatoren sind Kurzformen für Standardoperationen, wie es in den folgenden Definition und Beispielen gezeigt wird.</p> + +<table class="standard-table"> + <tbody> + <tr> + <th>Name</th> + <th>Kurzformoperator</th> + <th>Bedeutung</th> + </tr> + <tr> + <td><a href="#Assignment">Zuweisung</a></td> + <td><code>x = y</code></td> + <td><code>x = y</code></td> + </tr> + <tr> + <td><a href="#Addition_assignment">Additionszuweisung</a></td> + <td><code>x += y</code></td> + <td><code>x = x + y</code></td> + </tr> + <tr> + <td><a href="#Subtraction_assignment">Subtraktionszuweisung</a></td> + <td><code>x -= y</code></td> + <td><code>x = x - y</code></td> + </tr> + <tr> + <td><a href="#Multiplication_assignment">Multiplikationszuweisung</a></td> + <td><code>x *= y</code></td> + <td><code>x = x * y</code></td> + </tr> + <tr> + <td><a href="#Division_assignment">Divisionszuweisung</a></td> + <td><code>x /= y</code></td> + <td><code>x = x / y</code></td> + </tr> + <tr> + <td><a href="#Remainder_assignment">Restzuweisung</a></td> + <td><code>x %= y</code></td> + <td><code>x = x % y</code></td> + </tr> + <tr> + <td><a href="#Exponentiation_assignment">Potenzierungszuweisung</a></td> + <td><code>x **= y</code></td> + <td><code>x = x ** y</code></td> + </tr> + <tr> + <td><a href="#Left_shift_assignment">Links verschiebende Zuweisung</a></td> + <td><code>x <<= y</code></td> + <td><code>x = x << y</code></td> + </tr> + <tr> + <td><a href="#Right_shift_assignment">Rechts verschiebende Zuweisung</a></td> + <td><code>x >>= y</code></td> + <td><code>x = x >> y</code></td> + </tr> + <tr> + <td><a href="#Unsigned_right_shift_assignment">Vorzeichenlose rechts verschiebende Zuweisung</a></td> + <td><code>x >>>= y</code></td> + <td><code>x = x >>> y</code></td> + </tr> + <tr> + <td><a href="#Bitwise_AND_assignment">Bitweise AND Zuweisung</a></td> + <td><code>x &= y</code></td> + <td><code>x = x & y</code></td> + </tr> + <tr> + <td><a href="#Bitwise_XOR_assignment">Bitweise XOR Zuweisung</a></td> + <td><code>x ^= y</code></td> + <td><code>x = x ^ y</code></td> + </tr> + <tr> + <td><a href="#Bitwise_OR_assignment">Bitweise OR Zuweisung</a></td> + <td><code>x |= y</code></td> + <td><code>x = x | y</code></td> + </tr> + </tbody> +</table> + +<h2 id="Zuweisung"><a name="Assignment">Zuweisung</a></h2> + +<p>Einfacher Zuweisungsoperator, welcher den Wert zu einer Variablen zuweist. Der Zuweisungsoperator gibt den zugewiesenen Wert zurück. Eine Verkettung der Zuweisungsoperatoren ist möglich, um einen Wert mehreren Variablen zuzuweisen. Sie in den Beispielen.</p> + +<h4 id="Syntax">Syntax</h4> + +<pre class="syntaxbox"><strong>Operator:</strong> x = y +</pre> + +<h4 id="Beispiele">Beispiele</h4> + +<pre class="brush: js">// Folgende Variablen sind vorausgesetzt +// x = 5 +// y = 10 +// z = 25 + +x = y // x ist 10 +x = y = z // x, y und z sind alle 25 +</pre> + +<h3 id="Additionszuweisung"><a name="Addition_assignment">Additionszuweisung</a></h3> + +<p>Der Additionszuweisungsoperator <strong>addiert</strong> den Wert des rechten Operanten zu einer Variablen und weist das Ergebnis der Variablen zu. Die Typen der Operanten entscheiden über das Verhalten des Additionszuweisungsoperator. Addition oder Konkatination sind möglich. Siehe beim {{jsxref("Operators/Arithmetic_Operators", "Additionsoperator", "#Addition", 1)}} für mehr Details nach.</p> + +<h4 id="Syntax_2">Syntax</h4> + +<pre class="syntaxbox"><strong>Operator:</strong> x += y +<strong>Bedeutung:</strong> x = x + y +</pre> + +<h4 id="Beispiele_2">Beispiele</h4> + +<pre class="brush: js">// Die folgenden Variablen werden vorausgesetzt +// foo = 'foo' +// bar = 5 +// baz = true + + +// Number + Number -> Addition +bar += 2 // 7 + +// Boolean + Number -> Addition +baz += 1 // 2 + +// Boolean + Boolean -> Addition +baz += false // 1 + +// Number + String -> Konkationation +bar += 'foo' // "5foo" + +// String + Boolean -> Konkatination +foo += false // "foofalse" + +// String + String -> Konkationation +foo += 'bar' // "foobar" +</pre> + +<h3 id="Subtraktionszuweisung"><a name="Subtraction_assignment">Subtraktionszuweisung</a></h3> + +<p>Der Subtraktionszuweisungsoperator <strong>subtahiert</strong> den Wert des rechten Operanten von einer Variablen und weist das Ergebnis der Variablen zu. Siehe beim {{jsxref("Operators/Arithmetic_Operators", "Subraktionsoperator", "#Subtraction", 1)}} für mehr Details nach.</p> + +<h4 id="Syntax_3">Syntax</h4> + +<pre class="syntaxbox"><strong>Operator:</strong> x -= y +<strong>Bedeutung:</strong> x = x - y +</pre> + +<h4 id="Beispiele_3">Beispiele</h4> + +<pre class="brush: js">// Die folgenden Variablen werden vorausgesetzt +// bar = 5 + +bar -= 2 // 3 +bar -= 'foo' // NaN +</pre> + +<h3 id="Multiplikationszuweisung"><a name="Multiplication_assignment">Multiplikationszuweisung</a></h3> + +<p>Der Multiplikationszuweisungsoperator <strong>multipliziert</strong> den Wert des rechten Operanten zu einer Variablen und weist das Ergebnis der Variablen zu. Siehe beim {{jsxref("Operators/Arithmetic_Operators", "Multiplikationsoperator", "#Multiplication", 1)}} für mehr Details nach.</p> + +<h4 id="Syntax_4">Syntax</h4> + +<pre class="syntaxbox"><strong>Operator:</strong> x *= y +<strong>Bedeutung:</strong> x = x * y +</pre> + +<h4 id="Beispiele_4">Beispiele</h4> + +<pre class="brush: js">// Die folgenden Variablen werden vorausgesetzt +// bar = 5 + +bar *= 2 // 10 +bar *= 'foo' // NaN +</pre> + +<h3 id="Divisionszuweisung"><a name="Division_assignment">Divisionszuweisung</a></h3> + +<p>Der Divisionszuweisungsoperator <strong>dividiert</strong> eine Variable durch den rechten Operanten zu und weist das Ergebnis der Variablen zu. Siehe beim {{jsxref("Operators/Arithmetic_Operators", "Divisionsoperator", "#Division", 1)}} für mehr Details nach.</p> + +<h4 id="Syntax_5">Syntax</h4> + +<pre class="syntaxbox"><strong>Operator:</strong> x /= y +<strong>Bedeutung:</strong> x = x / y +</pre> + +<h4 id="Beispiele_5">Beispiele</h4> + +<pre class="brush: js">// Die folgenden Variablen werden vorausgesetzt +// bar = 5 + +bar /= 2 // 2.5 +bar /= 'foo' // NaN +bar /= 0 // Infinity +</pre> + +<h3 id="Restzuweisung"><a name="Remainder_assignment">Restzuweisung</a></h3> + +<p>Der Restzuweisungsoperator <strong>dividiert</strong> einer Variable durch den rechten Operanten und weist den <strong>Rest</strong> des Ergebnis der Variablen zu. Siehe beim {{jsxref("Operators/Arithmetic_Operators", "Restoperator", "#Remainder", 1)}} für mehr Details nach.</p> + +<h4 id="Syntax_6">Syntax</h4> + +<pre class="syntaxbox"><strong>Operator:</strong> x %= y +<strong>Bedeutung:</strong> x = x % y +</pre> + +<h4 id="Beispiele_6">Beispiele</h4> + +<pre class="brush: js">// Die folgenden Variablen werden vorausgesetzt +// bar = 5 + +bar %= 2 // 1 +bar %= 'foo' // NaN +bar %= 0 // NaN +</pre> + +<h3 id="Potenzierungszuweisung"><a id="Exponentiation_assignment" name="Exponentiation_assignment">Potenzierungszuweisung</a></h3> + +<p>Der Potenzierungszuweisungsoperator <strong>potenziert</strong> einer Variable mit den rechten Operanten und weist das Ergebnis der Variablen zu. Siehe beim {{jsxref("Operators/Arithmetic_Operators", "Exponentialoperator", "#Exponentiation", 1)}} für mehr Details nach.</p> + +<h4 id="Syntax_7">Syntax</h4> + +<pre class="syntaxbox"><strong>Operator:</strong> x **= y +<strong>Bedeutung:</strong> x = x ** y +</pre> + +<h4 id="Beispiele_7">Beispiele</h4> + +<pre class="brush: js">// Die folgenden Variablen werden vorausgesetzt +// bar = 5 + +bar **= 2 // 25 +bar **= 'foo' // NaN</pre> + +<h3 id="Links_verschiebende_Zuweisung"><a name="Left_shift_assignment">Links verschiebende Zuweisung</a></h3> + +<p>Der links verschiebende Zuweisungsoperator verschiebt um die Anzahl Bits im rechten Operanten in der Variablen und weist das Ergebnis der Variablen zu. Siehe beim {{jsxref("Operators/Bitwise_Operators", "links verschiebenden Operator", "#Left_shift", 1)}} für mehr Details nach.</p> + +<h4 id="Syntax_8">Syntax</h4> + +<pre class="syntaxbox"><strong>Operator:</strong> x <<= y +<strong>Bedeutung:</strong> x = x << y +</pre> + +<h4 id="Beispiele_8">Beispiele</h4> + +<pre class="brush: js">var bar = 5; // (00000000000000000000000000000101) +bar <<= 2; // 20 (00000000000000000000000000010100) +</pre> + +<h3 id="Rechts_verschiebende_Zuweisung"><a name="Right_shift_assignment">Rechts verschiebende Zuweisung</a></h3> + +<p>Der rechts verschiebende Zuweisungsoperator verschiebt um die Anzahl Bits im rechten Operanten in der Variablen und weist das Ergebnis der Variablen zu. Siehe beim {{jsxref("Operators/Bitwise_Operators", "rechts verschiebenden Operator", "#Right_shift", 1)}} für mehr Details nach.</p> + +<h4 id="Syntax_9">Syntax</h4> + +<pre class="syntaxbox"><strong>Operator:</strong> x >>= y +<strong>Bedeutung:</strong> x = x >> y +</pre> + +<h4 id="Beispiele_9">Beispiele</h4> + +<pre class="brush: js">var bar = 5; // (00000000000000000000000000000101) +bar >>= 2; // 1 (00000000000000000000000000000001) + +var bar -5; // (-00000000000000000000000000000101) +bar >>= 2; // -2 (-00000000000000000000000000000010) +</pre> + +<h3 id="Vorzeichenlose_rechts_verschiebende_Zuweisung"><a name="Unsigned_right_shift_assignment">Vorzeichenlose rechts verschiebende Zuweisung</a></h3> + +<p>Der vorzeichenlose rechts verschiebende Zuweisungsoperator verschiebt um die Anzahl Bits im rechten Operanten in der Variablen und weist das Ergebnis der Variablen zu. Siehe beim {{jsxref("Operators/Bitwise_Operators", "vorzeichenlose rechts verschiebenden Operator", "#Unsigned_right_shift", 1)}} für mehr Details nach.</p> + +<h4 id="Syntax_10">Syntax</h4> + +<pre class="syntaxbox"><strong>Operator:</strong> x >>>= y +<strong>Bedeutung:</strong> x = x >>> y +</pre> + +<h4 id="Beispiele_10">Beispiele</h4> + +<pre class="brush: js">var bar = 5; // (00000000000000000000000000000101) +bar >>>= 2; // 1 (00000000000000000000000000000001) + +var bar = -5; // (-00000000000000000000000000000101) +bar >>>= 2; // 1073741822 (00111111111111111111111111111110)</pre> + +<h3 id="Bitweise_UND_Zuweisung"><a name="Bitwise_AND_assignment">Bitweise UND Zuweisung</a></h3> + +<p>Der bitweise UND Zuweisungsoperator nutzt die Bitrepräsentation beider Operanten, führt eine bitweises UND Operation aus und weist das Ergebnis der Variablen zu.<strong> </strong>Siehe beim {{jsxref("Operators/Bitwise_Operators", "bitweisen UND Operator", "#Bitwise_AND", 1)}} für mehr Details nach.</p> + +<h4 id="Syntax_11">Syntax</h4> + +<pre class="syntaxbox"><strong>Operator:</strong> x &= y +<strong>Bedeutung:</strong> x = x & y +</pre> + +<h4 id="Beispiele_11">Beispiele</h4> + +<pre class="brush: js">var bar = 5; +// 5: 00000000000000000000000000000101 +// 2: 00000000000000000000000000000010 +bar &= 2; // 0 +</pre> + +<h3 id="Bitweise_XOR_Zuweisung"><a name="Bitwise_XOR_assignment">Bitweise XOR Zuweisung</a></h3> + +<p>Der bitweise XOR Zuweisungsoperator nutzt die Bitrepräsentation beider Operanten, führt eine bitweises XOR Operation aus und weist das Ergebnis der Variablen zu.<strong> </strong>Siehe beim {{jsxref("Operators/Bitwise_Operators", "bitweisen XOR Operator", "#Bitwise_XOR", 1)}} für mehr Details nach.</p> + +<h4 id="Syntax_12">Syntax</h4> + +<pre class="syntaxbox"><strong>Operator:</strong> x ^= y +<strong>Bedeutung:</strong> x = x ^ y +</pre> + +<h4 id="Beispiele_12">Beispiele</h4> + +<pre class="brush: js">var bar = 5; +bar ^= 2; // 7 +// 5: 00000000000000000000000000000101 +// 2: 00000000000000000000000000000010 +// ----------------------------------- +// 7: 00000000000000000000000000000111 +</pre> + +<h3 id="Bitweise_ODER_Zuweisung"><a name="Bitwise_OR_assignment">Bitweise ODER Zuweisung</a></h3> + +<p>Der bitweise ODER Zuweisungsoperator nutzt die Bitrepräsentation beider Operanten, führt eine bitweises ODER Operation aus und weist das Ergebnis der Variablen zu.<strong> </strong>Siehe beim {{jsxref("Operators/Bitwise_Operators", "bitweisen ODER Operator", "#Bitwise_OR", 1)}} für mehr Details nach.</p> + +<h4 id="Syntax_13">Syntax</h4> + +<pre class="syntaxbox"><strong>Operator:</strong> x |= y +<strong>Bedeutung:</strong> x = x | y +</pre> + +<h4 id="Beispiele_13">Beispiele</h4> + +<pre class="brush: js">var bar = 5; +bar |= 2; // 7 +// 5: 00000000000000000000000000000101 +// 2: 00000000000000000000000000000010 +// ----------------------------------- +// 7: 00000000000000000000000000000111 +</pre> + +<h2 id="Beispiele_14">Beispiele</h2> + +<h3 id="Linker_Operant_mit_anderem_Zuweisungsoperator">Linker Operant mit anderem Zuweisungsoperator</h3> + +<p>In ungewöhnlichen Situationen kann ein Zuweisungsoperator (z. B. <code>x += y</code>) nicht identisch mit der äquivalenten Zuweisung (hier <code>x = x + y</code>). Wenn der linke Operant einer Zuweisung selbst eine Zuweisung enthält, wird der linke Operant nur einem ausgewertet. Zum Beispiel:</p> + +<pre class="brush: js">a[i++] += 5 // i wird einmal ausgewertet +a[i++] = a[i++] + 5 // i wird zweimal ausgewertet +</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-assignment-operators', 'Assignment operators')}}</td> + <td>{{Spec2('ESDraft')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES2015', '#sec-assignment-operators', 'Assignment operators')}}</td> + <td>{{Spec2('ES2015')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES5.1', '#sec-11.13', 'Assignment operators')}}</td> + <td>{{Spec2('ES5.1')}}</td> + <td> </td> + </tr> + <tr> + <td>{{SpecName('ES1', '#sec-11.13', 'Assignment operators')}}</td> + <td>{{Spec2('ES1')}}</td> + <td>Initiale Definition.</td> + </tr> + </tbody> +</table> + +<h2 id="Browserkompatibilität">Browserkompatibilität</h2> + + + +<p>{{Compat("javascript.operators.assignment")}}</p> + +<h2 id="Siehe_auch">Siehe auch</h2> + +<ul> + <li><a href="/de/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators">Arithmetische Operatoren</a></li> +</ul> |