From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../operators/assignment_operators/index.html | 430 +++++++++++++++++++++ 1 file changed, 430 insertions(+) create mode 100644 files/ru/web/javascript/reference/operators/assignment_operators/index.html (limited to 'files/ru/web/javascript/reference/operators/assignment_operators') diff --git a/files/ru/web/javascript/reference/operators/assignment_operators/index.html b/files/ru/web/javascript/reference/operators/assignment_operators/index.html new file mode 100644 index 0000000000..aa1d42facf --- /dev/null +++ b/files/ru/web/javascript/reference/operators/assignment_operators/index.html @@ -0,0 +1,430 @@ +--- +title: Операторы присваивания +slug: Web/JavaScript/Reference/Operators/Assignment_Operators +tags: + - JavaScript + - Оператор +translation_of: Web/JavaScript/Reference/Operators#Assignment_operators +--- +
{{jsSidebar("Operators")}}
+ +

Оператор присваивания присваивает левому операнду значение, основанное на значении правого операнда.

+ +

Описание

+ +

Основной оператор присваивания - это знак равно (=), он и присваивает значение правого операнда, левому. То есть - x = y присваивает значение переменной y, переменной x. Другие операторы присваивания, как следует из приведенной ниже таблицы с определениями и примерами, являются сокращениями стандартных операций.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ИмяСокращенный операторСмысл
Присваиваниеx = yx = y
Присваивание со сложениемx += yx = x + y
Присваивание с вычитаниемx -= yx = x - y
Присваивание с умножениемx *= yx = x * y
Присваивание с делениемx /= yx = x / y
Присваивание по модулюx %= yx = x % y
Присваивание с левым сдвигомx <<= yx = x << y
Присваивание с правым сдвигомx >>= yx = x >> y
Присваивание с беззнаковым сдвигом вправоx >>>= yx = x >>> y
Присваивание с побитовым ANDx &= yx = x & y
Присваивание с побитовым XORx ^= yx = x ^ y
Присваивание с побитовым ORx |= yx = x | y
+ +

Присваивание

+ +

Простой оператор присваивания, который задает значение переменной. Цепочка операторов присваивания может быть использована для назначения нескольким переменным одного и того же значения. Смотрите пример.

+ +

Синтаксис

+ +
Оператор: x = y
+
+ +

Примеры

+ +
// Например, следующие переменные:
+//  x = 5
+//  y = 10
+//  z = 25
+
+x = y     // x - 10
+x = y = z // x, y и z все равны 25
+
+ +

Присваивание со сложением

+ +

Оператор добавочного присваивания, добавляет значение правого операнда к значению левого, и сохраняет результат в переменную левого операнда. Типы значений обоих операндов, определяют поведение оператора добавочного присваивания. Возможны сложение и конкатенация. Смотрите {{jsxref("Operators/Arithmetic_Operators", "addition operator", "#Addition", 1)}} для подробностей.

+ +

Синтаксис

+ +
Оператор: 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"
+
+ +

Присваивание с вычитанием

+ +

Оператор вычитаемого присваивания вычитает значение правого операнда из значения левого, и присваивает результат переменной левого операнда. Смотрите {{jsxref("Operators/Arithmetic_Operators", "subtraction operator", "#Subtraction", 1)}} для подробностей.

+ +

Синтаксис

+ +
Оператор: 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 {{jsxref("Operators/Arithmetic_Operators", "multiplication operator", "#Multiplication", 1)}} 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 {{jsxref("Operators/Arithmetic_Operators", "division operator", "#Division", 1)}} 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 {{jsxref("Operators/Arithmetic_Operators", "remainder operator", "#Remainder", 1)}} 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 {{jsxref("Operators/Bitwise_Operators", "left shift operator", "#Left_shift", 1)}} 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 {{jsxref("Operators/Bitwise_Operators", "right shift operator", "#Right_shift", 1)}} 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 {{jsxref("Operators/Bitwise_Operators", " unsigned right shift operator", "#Unsigned_right_shift", 1)}} 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 {{jsxref("Operators/Bitwise_Operators", "bitwise AND operator", "#Bitwise_AND", 1)}} for more details.

+ +

Синтаксис

+ +
Оператор: x &= y
+Значение:  x  = x & y
+
+ +

Примеры

+ +
var bar = 5;
+// 5:     00000000000000000000000000000101
+// 2:     00000000000000000000000000000010
+bar &= 2; // 0
+
+ +

Присваивание с побитовым XOR

+ +

Побитовый оператор присваивания XOR использует двоичное представление обоих операндов, выполняет побитовую XOR-операцию и присваивает результат переменной. Для получения более подробной информации см. {{jsxref("Operators/Bitwise_Operators", "Побитовый оператор XOR", "#Bitwise_XOR", 1)}}.

+ +

Синтаксис

+ +
Оператор: x ^= y
+Значение:  x  = x ^ y
+
+ +

Примеры

+ +
var bar = 5;
+bar ^= 2; // 7
+// 5: 00000000000000000000000000000101
+// 2: 00000000000000000000000000000010
+// -----------------------------------
+// 7: 00000000000000000000000000000111
+
+ +

Присваиванием с побитовым OR

+ +

Побитовый оператор присваивания OR использует двоичное (бинарное) представление обоих операндов, выполняет побитовое ИЛИ для них и присваивает результат переменной. Дополнительную информацию см. {{jsxref("Operators/Bitwise_Operators", "Побитовый оператор OR", "#Bitwise_OR", 1)}}.

+ +

Синтаксис

+ +
Оператор: 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-е издание.СтандартИзначальное определение.
{{SpecName('ES5.1', '#sec-11.13', 'Операторы присваивания')}}{{Spec2('ES5.1')}} 
{{SpecName('ES6', '#sec-assignment-operators', 'Операторы присваивания')}}{{Spec2('ES6')}} 
+ +

Совместимость с браузерами

+ +

{{ CompatibilityTable() }}

+ +
+ + + + + + + + + + + + + + + + + + + +
ВозможностьChromeFirefox (Gecko)Internet ExplorerOperaSafari
Базовая поддержка{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
+
+ +
+ + + + + + + + + + + + + + + + + + + + + +
ВозможностьAndroidChrome for AndroidFirefox Mobile (Gecko)IE MobileOpera MobileSafari Mobile
Базовая поддержка{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}{{ CompatVersionUnknown() }}
+
+ +

Смотрите также

+ + -- cgit v1.2.3-54-g00ecf