Codebra
28 января 2026 в 11:48

Урок 26. Выражения присваивания в JavaScript

Выражения присваивания в JavaScript и разбор ошибок.
📝

Внимание! На этой странице вы найдете материал урока из архивного курса по JavaScript. Курс был написан в 2015 и по-прежнему актуален для начинающих веб-разработчиков.

Теоретический материал сохранен в исходном виде, а практические задания с автоматической проверкой вынесены в отдельные роадмапы.

Полный список уроков доступен по тегу Архивный курс по JavaScript и на странице первого урока.

Вы уже хорошо знакомы с присваиванием (=) в JavaScript. Левым операндом должно быть левостороннее выражение: переменная, элемент массива или свойство объекта. А справа может быть все что угодно. Чаще всего оператор присваивания (=) используют отдельно от других операторов, но бывает и такое:

b = 10
(a = b) == 10 /* -> true */

Важно помнить, что оператор присваивания (=) имеет самый низкий приоритет среди операторов и поэтому скобки обязательны. Оператор присваивания имеет вот такую возможность:

a = b = c = 10 /* -> a, b, c = 10 */

Но здесь есть подводные камни. Этой возможностью нужно пользоваться прежде подумав. Например, вы напишите вот такой код:

var a = b = 10;

Видите ошибку? Согласен, ошибка не серьезная, но все же. В этой конструкции получается, что b не объявленная переменная, что не очень то и хорошо. Таких ошибок лучше не допускать, позже вы будете изучать функции и тогда все поймете. Лучше записывать так:

var a, b;
a = b = 10;

Вот пример кода, почему плохо не объявлять переменную и допускать подобные ошибки.

function myFunc() {
    var a = b = 10;
    document.write(a + '<br>');
    document.write(b + '<br>');
}
 
myFunc();
 
/*
 * JavaScript выведет 10, что категорически не допустимо
 * если вы пишите нормальный код
 * Все дело в области видимости, о которой вы узнаете позже
 * переменная b является глобальной (доступна в любой точке программы)
 */
document.write(b + '<br>');
/*
 * ошибка: переменная не объявлена
 * переменная a является локальной (доступна внутри функции)
 */
document.write(a + '<br>');

Другие присваивания

Об этом уже упоминалось. В JavaScript есть возможность присваивать с операцией (следующие две записи эквивалентны):

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;

В следующем уроке познакомимся с остальными операторами языка JavaScript.

📝

Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу JavaScript.