Простое присваивание в JavaScript выполняется с помощью знака равенства =, при этом значение справа от него просто присваивается переменной слева. Наряду с простым присваванем в JavaScript широко используется, так называемое составное присваивание, которое осуществляется с помощью одного из арифметических операторов или операторов сдвига, за которым следует знак равенства.
Описание
Основной оператор присваивания – это знак равно =, он и присваивает значение правого операнда, левому. Левым операндом оператора = должна быть переменная, элемент массива или свойство объекта. Правым операндом может быть значение любого типа.
Кроме простого оператора присваивания =, в JavaScript определены несколько дополнительных операторов, являющихся, как следует из приведенной ниже таблицы, сокращенными обозначениями двух операций: присваивания и одной из арифметических операций.
| Оператор | Описание | Пример | Равнозначная операция |
|---|---|---|---|
| = | Присваивание | x = y | x = y |
| += | Присваивание со сложением | x += y | x = x + y |
| -= | Присваивание с вычитанием | x -= y | x = x - y |
| *= | Присваивание с умножением | x *= y | x = x * y |
| /= | Присваивание с делением | x /= y | x = x / y |
| %= | Присваивание по модулю | x %= y | x = x % y |
| <<= | Присваивание с левым сдвигом | x <<= y | x = x << y |
| >>= | Присваивание с правым сдвигом | x >>= y | x = x >> y |
| >>>= | Присваивание с беззнаковым сдвигом вправо | x >>>= y | x = x >>> y |
| &= | Присваивание с побитовым AND | x &= y | x = x & y |
| ^= | Присваивание с побитовым XOR | x ^= y | x = x ^ y |
| |= | Присваивание с побитовым OR | x |= y | x = x | y |
Простое присваивание
Простое присваивание выполняется с помощью операнда равенства =, при этом значение справа от него присваивается переменной слева:
var x = 20;Обратим внимание, что согласно таблицы приоритетов оператор присваивания = имеет один из самых низких приоритетов: 3.
Именно поэтому, когда переменной присваивается какое-либо выражение, например, x = 5 + 7 * 3, то сначала выполнятся арифметические операции справа, а затем – произойдёт присваивание полученного результата пременной x.
Операторы присваивания можно объединять в цепочки для того, чтобы присвоить одно и то же значение сразу нескольким переменным:
В примере операция присваивания работает справа-налево в следующем порядке:
- сначала вычислятся правое выражение
5+5; - полученный результат присваивается в переменную
c; - переменная
сприсваивается переменнойb, т.е.b = c; - и, наконец, переменная
bприсваивается переменнойa, т.е.a = b.
Присваивание со сложением
Оператор присваивания со сложением, прибавляет значение правого операнда к значению левого, и сохраняет результат в переменную левого операнда. Оператор += работает и с числами, и со строками. Для числовых операндов он выполняет сложение и присваивание, а для строковых – конкатенацию и присваивание:
Сокращённые операторы
Аналогично оператору += работают операторы -=,*=,/=,%= и бинарные <<=,>>=,>>>=,&=,|=,^=.
Сокращённые операторы только сокращают объём кода, но не увеличивают его быстродействие.
Итоги
- Левым операндом оператора = должна быть переменная, элемент массива или свойство объекта.
- Оператор присваивания = имеет один из самых низких приоритетов, поэтому сначала выполнятся арифметические операции справа, а затем произойдёт присваивание.
- Операторы присваивания можно объединять в цепочки, благодаря чему можно присвоить одно и то же значение сразу нескольким переменным.
- Операторы составного присваивания объединяют в себе один из арифметических операторов или операторов сдвига и знак равенства, сокращая тем самым объём кода.
Задачи
-
Присваивание со сложением
Как вы думаете, какое значение будет иметь переменная
апосле выполнения приведенных ниже выражений?Показать решениеvar b = 1, c; var а = b += с = 5; document.write( a );Решение:
Вы уже знаете, что присваивание работает справа налево. Сначала переменная
cпринимает значение 5. Далее к ней добавляется значение переменнойbи, наконец, полученный результат, присваивается переменнойa. Ответ 6.-
Составное присваивание
Чему будет равно значение переменной
dв примере ниже?Показать решениеvar a = 2, b = 3, c; var d = a *= c += b ; document.write( d );-
Присваивание по модулю
Используйте оператор присваивание по модулю
%=для взятия остатка от деленияaнаbи возврата результата в переменнуюa.Решение:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Присваивание по модулю</title> </head> <body> <script> var a = 8, b = 3; a %= b; document.write( a ); // 2 </script> </body> </html>
-
Присваивание с делением
Используйте оператор присваивание с делением
/=для получения результата от деленияaнаbи возврата его в переменнуюa.Решение:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Присваивание по модулю</title> </head> <body> <p id="demo"></p> <script> var a = 9, b = 3; a /= b; document.getElementById("demo").innerHTML = a; // 3 </script> </body> </html>
-
-


Комментарии
<code>, несколько строчек кода — в теги<pre><code>...ваш код...</code></pre>.