JS для начинающих. Урок 1.9: Операторы сложного присваивания

assignmentПримите мои искренние извинения за то, что я так долго не писал. Я обещаю исправиться и впредь публиковать уроки чаще. Сегодня у нас коротенький, но не менее важный из-за этого урок.

Результат выполнения какой-либо операции можно записать в новую переменную, а можно в переменную, которая в то же время является операндом. Во втором случаи идентификатор одной из переменной будет дублироваться в записи. Для того чтобы избавится от этого дублирования, как и во многих других языках программирования, в js есть операторы сложного присваивания. Их использование позволит сократить выражения вида a = a <операция> b , заменив его на a <операция>= b

Например, выражение вида: a = a + b можно заменить на a += b и если a = 3, а b = 2, то в обоих случаях в переменной a после исполнения кода будет записано значение 5.

Аналогично и с вычитанием, умножением, делением и побитовыми операторами.

var a = 3,
  b = 2;
 
a -= 2; // тоже самое, что a = a - b;
console.log(a); // выведет 1
var a = 2,
  b = 4;
 
a *= b; // тоже самое, что a = a * b;
console.log(a); // выведет 8
var a = 4,
  b = 2;
 
a /= b; // тоже самое, что a = a / b;
console.log(a); // выведет 2

Слева от оператора сложного присваивания должна стоять переменная, если там будет литерал, то это вызовет ошибку. Справа от оператора сложного присваивания может стоять как литерал, так и переменная и даже выражение.

var a = 1,
  b = 2,
  c = 3;
 
a += b * c; // тоже самое, что a = a + b * c
console.log(a) // выведет 1 + 2 * 3 = 7

Напоследок хочу заметить, что не стоит путать такие операторы как !=, >=, <= с операторами сложного присваивания. Это логические операторы и они не изменяют значения своих операндов. Ну, вот и всё. Ждите следующих уроков. Они будут скоро, обещаю. Как всегда, желаю вам успехов.

  • Максим

    Здравствуйте! Спасибо за интересный урок! А то что долго не писали не важно, я думаю все прекрасно понимают , что программисты люди крайне занятые или ленивые))) Успехов Вам!