В части про инициализацию переменных мы затронули тему присваивания значения какой-либо переменной. В этой части мы более подробнее познакомимся с оператором присваивания.
Оператор =
Оператор = в JavaScript используется для присваивания значения переменной, например:
let a = 5;
это наиболее используемое и самое понятное применение оператора =.
Возврат значения
Оператор = также и возвращает значение, что позволяет создавать вот такие интересные языковые конструкции:
let a = 5; let c = a + (b = 7 + 1 - (d = a + 2));
Вычисление значения c здесь будет происходить следующим образом:
- вычисляем значение
d = a + 2получим5+2 = 7 - полученное значение присваивается переменной
dи возвращается оператором=. Теперь всё выражение можно представить какc = a + (b = 7 + 1 - d) - вычисляем значение
b = 7 + 1 - 7получим1 - полученное значение присваивается переменной b и вновь возвращается оператором =
- вычисляется значение переменной
cкакa + 1 = 6 - полученное значение присваивается переменной
c
Конечно, использование такой возможности оператора = как возврат значения лучше часто не использовать, так как такой подход не сделает Ваш код более понятным, но знать об особенности стоит.
Цепочка присваиваний
Также, можно, используя оператор = создавать цепочки присваивания значений:
let a = b = c = 3 * 3;
Этот пример будет работать аналогично предыдущему и читать его следует справа на лево. То есть, вначале будет вычислено выражение 3 * 3, затем полученное значение будет присвоено переменной c, затем — значение переменной с будет присвоено переменной b и, наконец, значение переменной b будет присвоено переменной a. В более читаемом виде этот код мог бы выглядеть следующим образом:
let c = 3 * 3; let a = c; let b = c;
Суть не меняется — все переменные получают значение 9, но код становится понятнее.
Сокращенная арифметика в JavaScript
Достаточно часто нам будет необходимо изменить значение переменной и сохранить новое значение в ней же, например:
let c = 3; с = с + 3;//6
Здесь мы вначале прибавили к значению переменной c значение 3 (выполнили выражение справа), а, затем, полученное значение опять присвоили переменной с. Это довольно распространенная ситуация в программировании. В JavaScript можно использовать сокращенные арифметические операции с одновременным присваиванием нового значения переменной. В общем виде такое действие можно записать следующим образом:
[переменная] [оператор]= [значение]
где [переменная] — это переменная над значением которой производится какое-либо арифметическое действие; [оператор] — бинарный оператор, [значение] — значение, используемое в операции.
Например, выражение выше мы бы могли переписать следующим образом:
с += 3;// с = с + 3
Аналогичным образом можно использовать и другие арифметические операторы:
let c = 3; c += 3;// с = с + 3 = 6 c /= 3;// с = с / 3 = 6 / 3 = 2 c %= 2;// c = c % 2 = 0; console.log(c);
При подобной краткой записи мы также можем использовать в выражениях справа любые другие операции, например
let c = 3; let a = 2; c += a / 2; //c = c + 2 / 2 = 4
Здесь, в примере, вначале вычисляется выражение справа, то есть a/2, а затем выполняется оператор +=, то есть c + 1. В итоге, получим для переменной с значение 4.
Итого
Оператор присваивания (=) в JavaScript присваивает и возвращает значение переменной. Также, оператор = может использоваться для сокращенной записи арифметических операций с одновременным присваиванием значение переменной.