Посмотреть все уроки курса
Выбрать другой урок из курса
Поиск по сайту
Теория урока

27. Выражения присваивания в 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;

Похожие уроки и записи блога

Типы данных в PythonЗнакомство с Python
Написание модулей в PythonЗнакомство с Python
Функциональное программирование: map, filter и reduceЗнакомство с Python
Основы объектно-ориентированного программирования (ООП) в PythonЗнакомство с Python
Первое знакомство с PythonЗнакомство с Python
Структуры данных в PythonЗнакомство с Python
Аргументы и параметры функций, операторы * и ** в PythonЗнакомство с Python
Обработка исключений (try/except) в PythonЗнакомство с Python
Погружение в PythonЗнакомство с Python
<
×
>
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

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

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

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

Закрыть окно