Онлайн-курсы по JavaScript
Выбрать другой урок из курса
Теория урока

Выражения присваивания в JavaScript

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

Пример 1
b = 10

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

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

Пример 2
a = b = c = 10 /* -> a, b, c = 10 */

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

Пример 3
var a = b = 10;

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

Пример 4
var a, b;

a = b = 10;

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

Пример 5
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 есть возможность присваивать с операцией (следующие две записи эквивалентны):

Пример 6
a += b;

a = a + b;

Разумеется есть не только операция +=

Пример 7
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;
<
×
>
Внимание! Впервые на этом сайте?

Образовательный ресурс codebra.ru полностью посвящен программированию. Все курсы и уроки находятся на главной странице. Вы можете начать изучение прямо сейчас, кликнув на ссылки: HTML, CSS, JavaScript, C++, PHP, jQuery, Python, Bootstrap 3

Если что-то не нашли, то воспользуйтесь поиском по сайту, который находится на главной странице в самом верху.

Удачи в обучении!

Закрыть окно