Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
27. Выражения присваивания в 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;
Похожие уроки Codebra
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
- Практики нет, просто нажмите «проверить задание»
– Не пропускайте новостей, подпишитесь на нашу страницу ВКонтакте, Telegram.
– На данный момент на сайте нет возможности оставлять комментарии, но Вы можете спросить в нашей Telegram-группе.
Это займет не больше минуты.