Помимо обычного оператора присваивания (=) JavaScript поддерживает несколь_ ко других операторов_сокращений, объединяющих присваивание с некоторой другой операцией. Например, оператор += выполняет сложение и присваивание. Следующие выражения эквивалентны:
total += sales_tax
total = total + sales_tax
Как можно было ожидать, оператор += работает и с числами, и со строками. Если операнды числовые, он выполняет сложение и присваивание, а если строковые – конкатенацию и присваивание.
Из подобных ему операторов можно назвать _=, *=, &= и др. Все операторы при_ сваивания с операцией перечислены в табл. 5.2.
Таблица 5.2. Операторы присваивания
| Оператор
| Пример
| Эквивалент
|
|
|
|
|
| +=
| 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
|
|
|
|
|
94 Глава 5. Выражения и операторы

В большинстве случаев следующие выражения эквивалентны (здесь op означает оператор):
a op= b
a = a op b
Эти выражения отличаются, только если a содержит операции, имеющие побоч_ ные эффекты, такие как вызов функции или оператор инкремента.