Читать книгу 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;