Zuweisungsoperator

Ein Zuweisungsoperator weist dem linken Operanten einen Wert auf Basis des rechten Operanten zu.

Überblick

Der Basiszuweisungsoperator ist das Gleich (=), welches den Wert des rechten Operanten dem linken Operanten zuweist. So wird bei x = y der Wert von y x zugewiesen. Die anderen Zuweisungsoperatoren sind Kurzformen für Standardoperationen, wie es in den folgenden Definition und Beispielen gezeigt wird.

Name Kurzformoperator Bedeutung
Zuweisung x = y x = y
Additionszuweisung x += y x = x + y
Subtraktionszuweisung x -= y x = x - y
Multiplikationszuweisung x *= y x = x * y
Divisionszuweisung x /= y x = x / y
Restzuweisung x %= y x = x % y
Potenzierungszuweisung x **= y x = x ** y
Links verschiebende Zuweisung x <<= y x = x << y
Rechts verschiebende Zuweisung x >>= y x = x >> y
Vorzeichenlose rechts verschiebende Zuweisung x >>>= y x = x >>> y
Bitweise AND Zuweisung x &= y x = x & y
Bitweise XOR Zuweisung x ^= y x = x ^ y
Bitweise OR Zuweisung x |= y x = x | y

Zuweisung

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.

Syntax

Operator: x = y

Beispiele

// 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

Additionszuweisung

Der Additionszuweisungsoperator addiert 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 Additionsoperator für mehr Details nach.

Syntax

Operator:  x += y 
Bedeutung: x  = x + y

Beispiele

// 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"

Subtraktionszuweisung

Der Subtraktionszuweisungsoperator subtahiert den Wert des rechten Operanten von einer Variablen und weist das Ergebnis der Variablen zu. Siehe beim Subraktionsoperator für mehr Details nach.

Syntax

Operator:  x -= y 
Bedeutung: x  = x - y

Beispiele

// Die folgenden Variablen werden vorausgesetzt
//  bar = 5

bar -= 2     // 3
bar -= "foo" // NaN

Multiplikationszuweisung

Der Multiplikationszuweisungsoperator multipliziert den Wert des rechten Operanten zu einer Variablen und weist das Ergebnis der Variablen zu. Siehe beim Multiplikationsoperator für mehr Details nach.

Syntax

Operator:  x *= y 
Bedeutung: x  = x * y

Beispiele

// Die folgenden Variablen werden vorausgesetzt
//  bar = 5

bar *= 2     // 10
bar *= "foo" // NaN

Divisionszuweisung

Der Divisionszuweisungsoperator dividiert eine Variable durch den rechten Operanten zu und weist das Ergebnis der Variablen zu. Siehe beim Divisionsoperator für mehr Details nach.

Syntax

Operator:  x /= y 
Bedeutung: x  = x / y

Beispiele

// Die folgenden Variablen werden vorausgesetzt
//  bar = 5

bar /= 2     // 2.5
bar /= "foo" // NaN
bar /= 0     // Infinity

Restzuweisung

Der Restzuweisungsoperator dividiert einer Variable durch den rechten Operanten und weist den Rest des Ergebnis der Variablen zu. Siehe beim Restoperator für mehr Details nach.

Syntax

Operator:  x %= y 
Bedeutung: x  = x % y

Beispiele

// Die folgenden Variablen werden vorausgesetzt
//  bar = 5

bar %= 2     // 1
bar %= "foo" // NaN
bar %= 0     // NaN

Potenzierungszuweisung

This is an experimental technology, part of the ECMAScript 2016 (ES7) proposal.
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future version of browsers as the spec changes.

Der Potenzierungszuweisungsoperator potenziert einer Variable mit den rechten Operanten und weist das Ergebnis der Variablen zu. Siehe beim Exponentialoperator für mehr Details nach.

Syntax

Operator:  x **= y 
Bedeutung: x  = x ** y

Beispiele

// Die folgenden Variablen werden vorausgesetzt
//  bar = 5

bar **= 2     // 25
bar **= "foo" // NaN

Der links verschiebende Zuweisungsoperator verschiebt um die Anzahl Bits im rechten Operanten in der Variablen und weist das Ergebnis der Variablen zu. Siehe beim links verschiebenden Operator für mehr Details nach.

Syntax

Operator:  x <<= y 
Bedeutung: x   = x << y

Beispiele

var bar = 5; //  (00000000000000000000000000000101)
bar <<= 2; // 20 (00000000000000000000000000010100)

Rechts verschiebende Zuweisung

Der rechts verschiebende Zuweisungsoperator verschiebt um die Anzahl Bits im rechten Operanten in der Variablen und weist das Ergebnis der Variablen zu. Siehe beim rechts verschiebenden Operator für mehr Details nach.

Syntax

Operator:  x >>= y 
Bedeutung: x   = x >> y

Beispiele

var bar = 5; //   (00000000000000000000000000000101)
bar >>= 2;   // 1 (00000000000000000000000000000001)

var bar -5; //    (-00000000000000000000000000000101)
bar >>= 2;  // -2 (-00000000000000000000000000000010)

Vorzeichenlose rechts verschiebende Zuweisung

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 vorzeichenlose rechts verschiebenden Operator für mehr Details nach.

Syntax

Operator:  x >>>= y 
Bedeutung: x    = x >>> y

Beispiele

var bar = 5; //   (00000000000000000000000000000101)
bar >>>= 2;  // 1 (00000000000000000000000000000001)

var bar = -5; // (-00000000000000000000000000000101)
bar >>>= 2; // 1073741822 (00111111111111111111111111111110)

Bitweise AND Zuweisung

Der bitweise AND Zuweisungsoperator nutzt die Bitrepräsentation beider Operanten, führt eine bitweises AND Operation aus und weist das Ergebnis der Variablen zu. Siehe beim bitweisen AND Operator für mehr Details nach.

Syntax

Operator:  x &= y 
Bedeutung: x  = x & y

Beispiele

var bar = 5;
// 5:     00000000000000000000000000000101
// 2:     00000000000000000000000000000010
bar &= 2; // 0

Bitweise XOR Zuweisung

Der bitweise XOR Zuweisungsoperator nutzt die Bitrepräsentation beider Operanten, führt eine bitweises XOR Operation aus und weist das Ergebnis der Variablen zu. Siehe beim bitweisen XOR Operator für mehr Details nach.

Syntax

Operator:  x ^= y 
Bedeutung: x  = x ^ y

Beispiele

var bar = 5;
bar ^= 2; // 7
// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
// -----------------------------------
// 7: 00000000000000000000000000000111

Bitweise OR Zuweisung

Der bitweise OR Zuweisungsoperator nutzt die Bitrepräsentation beider Operanten, führt eine bitweises OR Operation aus und weist das Ergebnis der Variablen zu. Siehe beim bitweisen OR Operator für mehr Details nach.

Syntax

Operator:  x |= y 
Bedeutung: x  = x | y

Beispiele

var bar = 5;
bar |= 2; // 7
// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
// -----------------------------------
// 7: 00000000000000000000000000000111

Beispiele

Linker Operant mit anderem Zuweisungsoperator

In ungewöhnlichen Situationen kann ein Zuweisungsoperator (z. B. x += y) nicht identisch mit der äquivalenten Zuweisung (hier x = x + y). Wenn der linke Operant einer Zuweisung selbst eine Zuweisung enthält, wird der linke Operant nur einem ausgewertet. Zum Beispiel:

a[i++] += 5         // i wird einmal ausgewertet
a[i++] = a[i++] + 5 // i wird zweimal ausgewertet

Spezifikationen

Spezifikation Status Kommentar
ECMAScript 2017 Draft (ECMA-262)
Die Definition von 'Assignment operators' in dieser Spezifikation.
Entwurf  
ECMAScript 2015 (6th Edition, ECMA-262)
Die Definition von 'Assignment operators' in dieser Spezifikation.
Standard  
ECMAScript 5.1 (ECMA-262)
Die Definition von 'Assignment operators' in dieser Spezifikation.
Standard  
ECMAScript 1st Edition (ECMA-262)
Die Definition von 'Assignment operators' in dieser Spezifikation.
Standard Initiale Definition.

Browserkompatibilität

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Ja) (Ja) (Ja) (Ja) (Ja)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Ja) (Ja) (Ja) (Ja) (Ja) (Ja)

Siehe auch

Schlagwörter des Dokuments und Mitwirkende

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