Операторы присваивания
Оператор присваивания присваивает левому операнду значение, основанное на значении правого операнда.
Описание
Основной оператор присваивания - это знак равно (=
), он и присваивает значение правого операнда, левому. То есть - x = y
присваивает значение переменной y
, переменной x
. Другие операторы присваивания, как следует из приведённой ниже таблицы с определениями и примерами, являются сокращениями стандартных операций.
Имя | Сокращённый оператор | Смысл |
---|---|---|
Присваивание | x = y |
x = y |
Присваивание со сложением | x += y |
x = x + y |
Присваивание с вычитанием | x -= y |
x = x - y |
Присваивание с умножением | x *= y |
x = x * y |
Присваивание с делением | x /= y |
x = x / y |
Присваивание по модулю | x %= y |
x = x % y |
Присваивание с левым сдвигом | x <<= y |
x = x << y |
Присваивание с правым сдвигом | x >>= y |
x = x >> y |
Присваивание с беззнаковым сдвигом вправо | x >>>= y |
x = x >>> y |
Присваивание с побитовым AND | x &= y |
x = x & y |
Присваивание с побитовым XOR | x ^= y |
x = x ^ y |
Присваивание с побитовым OR | x |= y |
x = x | y |
Присваивание
Простой оператор присваивания, который задаёт значение переменной. Цепочка операторов присваивания может быть использована для назначения нескольким переменным одного и того же значения. Смотрите пример.
Синтаксис
Оператор: x = y
Примеры
// Например, следующие переменные:
// x = 5
// y = 10
// z = 25
x = y // x - 10
x = y = z // x, y и z все равны 25
Присваивание со сложением
Оператор добавочного присваивания, добавляет значение правого операнда к значению левого, и сохраняет результат в переменную левого операнда. Типы значений обоих операндов, определяют поведение оператора добавочного присваивания. Возможны сложение и конкатенация. Смотрите addition operator для подробностей.
Синтаксис
Оператор: x += y Значение: x = x + y
Примеры
// Например, следующие переменные:
// foo = "foo"
// bar = 5
// baz = true
// Результат исполнения каждого нижеприведённого примера
// представлен в изоляции от предыдущих примеров (как если
// бы значения переменных foo, bar, baz возвращались на
// первоначальные)
// Number + Number -> сложение
bar += 2 // 7
// Boolean + Number -> сложение
baz += 1 // 2
// Boolean + Boolean -> сложение
baz += false // 1
// Number + String -> конкатенация
bar += "foo" // "5foo"
// String + Boolean -> конкатенация
foo += false // "foofalse"
// String + String -> конкатенация
foo += "bar" // "foobar"
Присваивание с вычитанием
Оператор вычитаемого присваивания вычитает значение правого операнда из значения левого, и присваивает результат переменной левого операнда. Смотрите subtraction operator для подробностей.
Синтаксис
Оператор: x -= y Значение: x = x - y
Примеры
// Например, следующие переменные:
// bar = 5
bar -= 2 // 3
bar -= "foo" // NaN
Присваивание с умножением
The multiplication assignment operator multiplies a variable by the value of the right operand and assigns the result to the variable. See the multiplication operator for more details.
Синтаксис
Оператор: x *= y Значение: x = x * y
Примеры
// Assuming the following variable
// bar = 5
bar *= 2 // 10
bar *= "foo" // NaN
Присваивание с делением
The division assignment operator divides a variable by the value of the right operand and assigns the result to the variable. See the division operator for more details.
Синтаксис
Оператор: x /= y Значение: x = x / y
Примеры
// Assuming the following variable
// bar = 5
bar /= 2 // 2.5
bar /= "foo" // NaN
bar /= 0 // Infinity
Присваивание по модулю
The remainder assignment operator divides a variable by the value of the right operand and assigns the remainder to the variable. See the remainder operator for more details.
Синтаксис
Оператор: x %= y Значение: x = x % y
Примеры
// Assuming the following variable
// bar = 5
bar %= 2 // 1
bar %= "foo" // NaN
bar %= 0 // NaN
Присваивание с левым сдвигом
The left shift assignment operator moves the specified amount of bits to the left and assigns the result to the variable. See the left shift operator for more details.
Синтаксис
Оператор: x <<= y Значение: x = x << y
Примеры
var bar = 5; // (00000000000000000000000000000101)
bar <<= 2; // 20 (00000000000000000000000000010100)
Присваивание с правым сдвигом
The right shift assignment operator moves the specified amount of bits to the right and assigns the result to the variable. See the right shift operator for more details.
Синтаксис
Оператор: x >>= y Значение: x = x >> y
Примеры
var bar = 5; // (00000000000000000000000000000101)
bar >>= 2; // 1 (00000000000000000000000000000001)
var bar -5; // (-00000000000000000000000000000101)
bar >>= 2; // -2 (-00000000000000000000000000000010)
Присваивание с беззнаковым сдвигом вправо
The unsigned right shift assignment operator moves the specified amount of bits to the right and assigns the result to the variable. See the unsigned right shift operator for more details.
Синтаксис
Оператор: x >>>= y Значение: x = x >>> y
Примеры
var bar = 5; // (00000000000000000000000000000101)
bar >>>= 2; // 1 (00000000000000000000000000000001)
var bar = -5; // (-00000000000000000000000000000101)
bar >>>= 2; // 1073741822 (00111111111111111111111111111110)
Присваивание с побитовым AND
The bitwise AND assignment operator uses the binary representation of both operands, does a bitwise AND operation on them and assigns the result to the variable. See the bitwise AND operator for more details.
Синтаксис
Оператор: x &= y Значение: x = x & y
Примеры
var bar = 5;
// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
bar &= 2; // 0
Присваивание с побитовым XOR
Побитовый оператор присваивания XOR использует двоичное представление обоих операндов, выполняет побитовую XOR-операцию и присваивает результат переменной. Для получения более подробной информации см. Побитовый оператор XOR.
Синтаксис
Оператор: x ^= y Значение: x = x ^ y
Примеры
var bar = 5;
bar ^= 2; // 7
// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
// -----------------------------------
// 7: 00000000000000000000000000000111
Присваиванием с побитовым OR
Побитовый оператор присваивания OR использует двоичное (бинарное) представление обоих операндов, выполняет побитовое ИЛИ для них и присваивает результат переменной. Дополнительную информацию см. Побитовый оператор OR.
Синтаксис
Оператор: x |= y Значение: x = x | y
Примеры
var bar = 5;
bar |= 2; // 7
// 5: 00000000000000000000000000000101
// 2: 00000000000000000000000000000010
// -----------------------------------
// 7: 00000000000000000000000000000111
Примеры
Левый операнд с другим оператором присваивания
В необычных ситуациях оператор присваивания, например, x += y не идентичен выражению, x = x + y. Когда левый операнд оператора присваивания содержит оператор присваивания, левый операнд оценивается только один раз. Например:
a[i++] += 5 // i оценивается только один раз
a[i++] = a[i++] + 5 // i оценивается дважды
Спецификации
Спецификация | Статус | Комментарий |
---|---|---|
ECMAScript 1-е издание. | Стандарт | Изначальное определение. |
ECMAScript 5.1 (ECMA-262) Определение 'Операторы присваивания' в этой спецификации. |
Стандарт | |
ECMAScript 2015 (6th Edition, ECMA-262) Определение 'Операторы присваивания' в этой спецификации. |
Стандарт |
Совместимость с браузерами
Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) |
Возможность | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Базовая поддержка | (Да) | (Да) | (Да) | (Да) | (Да) | (Да) |