Читать книгу JavaScript – Das Handbuch für die Praxis - David Flanagan - Страница 104
4.11.1Zuweisung mit Operation
ОглавлениеNeben dem normalen Zuweisungsoperator = unterstützt JavaScript eine Reihe weiterer Zuweisungsoperatoren, bei denen die eigentliche Zuweisung mit einer anderen Operation kombiniert wird. Beispielsweise führt der +=-Operator sowohl eine Addition als auch eine Zuweisung aus. Der Ausdruck
total += salesTax;
ist gleichwertig mit diesem:
total = total + salesTax;
Wie Sie sich vielleicht schon gedacht haben, kann der +=-Operator mit Strings und Zahlen umgehen. Bei numerischen Operanden führt er Addition und Zuweisung aus, bei String-Operanden Verkettung und Zuweisung.
Ähnliche Operatoren sind -=, *=, &= usw. Tabelle 4-2 zeigt sie in einer Übersicht.
Tabelle 4-2: Zuweisungsoperatoren
| Operator | Beispiel | Äquivalent | 
| += | a += b | a = a + b | 
| -= | a -= b | a = a - b | 
| *= | a *= b | a = a * b | 
| /= | a /= b | a = a / b | 
| %= | a %= b | a = a % b | 
| **= | a **= b | a = a ** b | 
| <<= | a <<= b | a = a << b | 
| >>= | a >>= b | a = a >> b | 
| >>>= | a >>>= b | a = a >>> b | 
| &= | a &= b | a = a & b | 
| |= | a |= b | a = a | b | 
| ^= | a ^= b | a = a ^ b | 
In den meisten Fällen ist der Ausdruck
a op= b
(mit op als beliebigem Operator) äquivalent zum Ausdruck
a = a op b
In der ersten Zeile wird der Ausdruck a einmal ausgewertet, in der zweiten zweimal. Die beiden Fälle unterscheiden sich also nur dann, wenn a Seiteneffekte hat, weil dieser Ausdruck beispielsweise einen Funktionsaufruf oder eine Inkrementierungsoperation enthält. Die beiden folgenden Zuweisungen sind beispielsweise nicht gleich:
data[i++] *= 2;
data[i++] = data[i++] * 2;
