Please note, this is a STATIC archive of website developer.mozilla.org from November 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Operator precedence

Diese Übersetzung ist unvollständig. Bitte helfen Sie, diesen Artikel aus dem Englischen zu übersetzen.

Operator precedence bestimmt in welcher Reihenfolge Operatoren ausgeführt werden. Operatoren mit höheren precedence werden zuerst ausgeführt. Hier ein bekanntes Beispiel:

3 + 4 * 5 // gibt 23 zurück

Da der Multiplikationsoperator eine höhere precedence besitzt als der Additionsoperator wurde er zuert ausgeführt. 

Assoziativität

Assoziativität bestimmt in welcher Reihenfolge Operatoren der selben precedence ausgeführt werden. Betrachten wir als Beispiel den folgenden Ausdruck:

a OP b OP c

Left-associativity (left-to-right oder links-nach-rechts) bedeutet, dass der Code als (a OP b) OP c ausgeführt wird, während right-associativity (right-to-left oder rechts-nach-links) heißt, dass der Code wie a OP (b OP c) ausgeführt wird. Zuordnungs Operatoren sind right-associative, also kann man schreiben:

a = b = 5;

mit dem erwarteten Resultat, dass sowohl a als auch b 5 sind. Das liegt daran, dass Zuordnungsopertoren den Wert zurükgeben, den sie zuerst zugeordnet haben. Zuerst wird b auf 5 gesetzt. Daraufhin wird a auf 5, also den Rückgabewert von b, gesetzt.

Tabelle

Die nachfolgende Tabelle ordnet die Opertoren nach ihrer precedence.

Precedence Operator type Associativity Individual operators
19 Grouping n/a ( … )
18 Member Access left-to-right … . …
Computed Member Access left-to-right … [ … ]
new (with argument list) n/a new … ( … )
17 Function Call left-to-right … ( … )
new (without argument list) right-to-left new …
16 Postfix Increment n/a … ++
Postfix Decrement n/a … --
15 Logical NOT right-to-left ! …
Bitwise NOT right-to-left ~ …
Unary Plus right-to-left + …
Unary Negation right-to-left - …
Prefix Increment right-to-left ++ …
Prefix Decrement right-to-left -- …
typeof right-to-left typeof …
void right-to-left void …
delete right-to-left delete …
14 Exponentiation right-to-left … ** …
Multiplication left-to-right … * …
Division left-to-right … / …
Remainder left-to-right … % …
13 Addition left-to-right … + …
Subtraction left-to-right … - …
12 Bitwise Left Shift left-to-right … << …
Bitwise Right Shift left-to-right … >> …
Bitwise Unsigned Right Shift left-to-right … >>> …
11 Less Than left-to-right … < …
Less Than Or Equal left-to-right … <= …
Greater Than left-to-right … > …
Greater Than Or Equal left-to-right … >= …
in left-to-right … in …
instanceof left-to-right … instanceof …
10 Equality left-to-right … == …
Inequality left-to-right … != …
Strict Equality left-to-right … === …
Strict Inequality left-to-right … !== …
9 Bitwise AND left-to-right … & …
8 Bitwise XOR left-to-right … ^ …
7 Bitwise OR left-to-right … | …
6 Logical AND left-to-right … && …
5 Logical OR left-to-right … || …
4 Conditional right-to-left … ? … : …
3 Assignment right-to-left … = …
… += …
… -= …
… **= …
… *= …
… /= …
… %= …
… <<= …
… >>= …
… >>>= …
… &= …
… ^= …
… |= …
2 yield right-to-left yield …
yield* right-to-left yield* …
1 Spread n/a ... …
0 Comma / Sequence left-to-right … , …

Schlagwörter des Dokuments und Mitwirkende

 Mitwirkende an dieser Seite: schlagi123, wLikeFish
 Zuletzt aktualisiert von: schlagi123,