aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/reference/operators/assignment_operators
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:42:52 -0500
commit074785cea106179cb3305637055ab0a009ca74f2 (patch)
treee6ae371cccd642aa2b67f39752a2cdf1fd4eb040 /files/ru/web/javascript/reference/operators/assignment_operators
parentda78a9e329e272dedb2400b79a3bdeebff387d47 (diff)
downloadtranslated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.gz
translated-content-074785cea106179cb3305637055ab0a009ca74f2.tar.bz2
translated-content-074785cea106179cb3305637055ab0a009ca74f2.zip
initial commit
Diffstat (limited to 'files/ru/web/javascript/reference/operators/assignment_operators')
-rw-r--r--files/ru/web/javascript/reference/operators/assignment_operators/index.html430
1 files changed, 430 insertions, 0 deletions
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
+---
+<div>{{jsSidebar("Operators")}}</div>
+
+<p><strong>Оператор присваивания</strong> присваивает левому операнду значение, основанное на значении правого операнда.</p>
+
+<h2 id="Описание">Описание</h2>
+
+<p>Основной оператор присваивания - это знак равно (<code>=</code>), он и присваивает значение правого операнда, левому. То есть - <code>x = y</code> присваивает значение переменной <code>y</code>, переменной <code>x</code>. Другие операторы присваивания, как следует из приведенной ниже таблицы с определениями и примерами, являются сокращениями стандартных операций.</p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th>Имя</th>
+ <th>Сокращенный оператор</th>
+ <th>Смысл</th>
+ </tr>
+ <tr>
+ <td><a href="#Assignment">Присваивание</a></td>
+ <td><code>x = y</code></td>
+ <td><code>x = y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Addition_assignment">Присваивание со сложением</a></td>
+ <td><code>x += y</code></td>
+ <td><code>x = x + y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Subtraction_assignment">Присваивание с вычитанием</a></td>
+ <td><code>x -= y</code></td>
+ <td><code>x = x - y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Multiplication_assignment">Присваивание с умножением</a></td>
+ <td><code>x *= y</code></td>
+ <td><code>x = x * y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Division_assignment">Присваивание с делением</a></td>
+ <td><code>x /= y</code></td>
+ <td><code>x = x / y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Remainder_assignment">Присваивание по модулю</a></td>
+ <td><code>x %= y</code></td>
+ <td><code>x = x % y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Left_shift_assignment">Присваивание с левым сдвигом</a></td>
+ <td><code>x &lt;&lt;= y</code></td>
+ <td><code>x = x &lt;&lt; y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Right_shift_assignment">Присваивание с правым сдвигом</a></td>
+ <td><code>x &gt;&gt;= y</code></td>
+ <td><code>x = x &gt;&gt; y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Unsigned_right_shift_assignment">Присваивание с беззнаковым сдвигом вправо</a></td>
+ <td><code>x &gt;&gt;&gt;= y</code></td>
+ <td><code>x = x &gt;&gt;&gt; y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Bitwise_AND_assignment">Присваивание с побитовым AND</a></td>
+ <td><code>x &amp;= y</code></td>
+ <td><code>x = x &amp; y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Bitwise_XOR_assignment">Присваивание с побитовым XOR</a></td>
+ <td><code>x ^= y</code></td>
+ <td><code>x = x ^ y</code></td>
+ </tr>
+ <tr>
+ <td><a href="#Bitwise_OR_assignment">Присваивание с побитовым OR</a></td>
+ <td><code>x |= y</code></td>
+ <td><code>x = x | y</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Присваивание">Присваивание</h2>
+
+<p>Простой оператор присваивания, который задает значение переменной. Цепочка операторов присваивания может быть использована для назначения нескольким переменным одного и того же значения. Смотрите пример.</p>
+
+<h4 id="Синтаксис">Синтаксис</h4>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x = y
+</pre>
+
+<h4 id="Примеры">Примеры</h4>
+
+<pre class="brush: js">// Например, следующие переменные:
+// x = 5
+// y = 10
+// z = 25
+
+x = y // x - 10
+x = y = z // x, y и z все равны 25
+</pre>
+
+<h2 id="Присваивание_со_сложением">Присваивание со сложением</h2>
+
+<p>Оператор добавочного присваивания, <strong>добавляет</strong> значение правого операнда к значению левого, и сохраняет результат в переменную левого операнда.<strong> </strong>Типы значений обоих операндов, определяют поведение оператора добавочного присваивания. Возможны сложение и конкатенация. Смотрите {{jsxref("Operators/Arithmetic_Operators", "addition operator", "#Addition", 1)}} для подробностей.</p>
+
+<h4 id="Синтаксис_2">Синтаксис</h4>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x += y
+<strong>Значение:</strong> x = x + y
+</pre>
+
+<h4 id="Примеры_2">Примеры</h4>
+
+<pre class="brush: js">// Например, следующие переменные:
+// foo = "foo"
+// bar = 5
+// baz = true
+
+// Результат исполнения каждого нижеприведенного примера
+// представлен в изоляции от предыдущих примеров (как если
+// бы значения переменных foo, bar, baz возвращались на
+// первоначальные)
+
+// Number + Number -&gt; сложение
+bar += 2 // 7
+
+// Boolean + Number -&gt; сложение
+baz += 1 // 2
+
+// Boolean + Boolean -&gt; сложение
+baz += false // 1
+
+// Number + String -&gt; конкатенация
+bar += "foo" // "5foo"
+
+// String + Boolean -&gt; конкатенация
+foo += false // "foofalse"
+
+// String + String -&gt; конкатенация
+foo += "bar" // "foobar"
+</pre>
+
+<h2 id="Присваивание_с_вычитанием">Присваивание с вычитанием</h2>
+
+<p>Оператор вычитаемого присваивания <strong>вычитает</strong> значение правого операнда из значения левого, и присваивает результат переменной левого операнда. Смотрите {{jsxref("Operators/Arithmetic_Operators", "subtraction operator", "#Subtraction", 1)}} для подробностей.</p>
+
+<h4 id="Синтаксис_3">Синтаксис</h4>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x -= y
+<strong>Значение:</strong> x = x - y
+</pre>
+
+<h4 id="Примеры_3">Примеры</h4>
+
+<pre class="brush: js">// Например, следующие переменные:
+// bar = 5
+
+bar -= 2 // 3
+bar -= "foo" // NaN
+</pre>
+
+<h3 id="Присваивание_с_умножением"><a name="Multiplication_assignment">Присваивание с умножением</a></h3>
+
+<p>The multiplication assignment operator <strong>multiplies</strong> 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.</p>
+
+<h4 id="Синтаксис_4">Синтаксис</h4>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x *= y
+<strong>Значение:</strong> x = x * y
+</pre>
+
+<h4 id="Примеры_4">Примеры</h4>
+
+<pre class="brush: js">// Assuming the following variable
+// bar = 5
+
+bar *= 2 // 10
+bar *= "foo" // NaN
+</pre>
+
+<h3 id="Присваивание_с_делением"><a name="Division_assignment">Присваивание с делением</a></h3>
+
+<p>The division assignment operator <strong>divides</strong> 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.</p>
+
+<h4 id="Синтаксис_5">Синтаксис</h4>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x /= y
+<strong>Значение:</strong> x = x / y
+</pre>
+
+<h4 id="Примеры_5">Примеры</h4>
+
+<pre class="brush: js">// Assuming the following variable
+// bar = 5
+
+bar /= 2 // 2.5
+bar /= "foo" // NaN
+bar /= 0 // Infinity
+</pre>
+
+<h3 id="Присваивание_по_модулю"><a name="Remainder_assignment">Присваивание по модулю</a></h3>
+
+<p>The remainder assignment operator <strong>divides</strong> a variable by the value of the right operand and assigns the <strong>remainder</strong> to the variable. See the {{jsxref("Operators/Arithmetic_Operators", "remainder operator", "#Remainder", 1)}} for more details.</p>
+
+<h4 id="Синтаксис_6">Синтаксис</h4>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x %= y
+<strong>Значение:</strong> x = x % y
+</pre>
+
+<h4 id="Примеры_6">Примеры</h4>
+
+<pre class="brush: js">// Assuming the following variable
+// bar = 5
+
+bar %= 2 // 1
+bar %= "foo" // NaN
+bar %= 0 // NaN
+</pre>
+
+<h3 id="Присваивание_с_левым_сдвигом"><a name="Left_shift_assignment">Присваивание с левым сдвигом</a></h3>
+
+<p>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.</p>
+
+<h4 id="Синтаксис_7">Синтаксис</h4>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x &lt;&lt;= y
+<strong>Значение:</strong> x = x &lt;&lt; y
+</pre>
+
+<h4 id="Примеры_7">Примеры</h4>
+
+<pre class="brush: js">var bar = 5; // (00000000000000000000000000000101)
+bar &lt;&lt;= 2; // 20 (00000000000000000000000000010100)
+</pre>
+
+<h3 id="Присваивание_с_правым_сдвигом"><a name="Right_shift_assignment">Присваивание с правым сдвигом</a></h3>
+
+<p>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.</p>
+
+<h4 id="Синтаксис_8">Синтаксис</h4>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x &gt;&gt;= y
+<strong>Значение:</strong> x = x &gt;&gt; y
+</pre>
+
+<h4 id="Примеры_8">Примеры</h4>
+
+<pre class="brush: js">var bar = 5; // (00000000000000000000000000000101)
+bar &gt;&gt;= 2; // 1 (00000000000000000000000000000001)
+
+var bar -5; // (-00000000000000000000000000000101)
+bar &gt;&gt;= 2; // -2 (-00000000000000000000000000000010)
+</pre>
+
+<h3 id="Присваивание_с_беззнаковым_сдвигом_вправо"><a name="Unsigned_right_shift_assignment">Присваивание с беззнаковым сдвигом вправо</a></h3>
+
+<p>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.</p>
+
+<h4 id="Синтаксис_9">Синтаксис</h4>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x &gt;&gt;&gt;= y
+<strong>Значение:</strong> x = x &gt;&gt;&gt; y
+</pre>
+
+<h4 id="Примеры_9">Примеры</h4>
+
+<pre class="brush: js">var bar = 5; // (00000000000000000000000000000101)
+bar &gt;&gt;&gt;= 2; // 1 (00000000000000000000000000000001)
+
+var bar = -5; // (-00000000000000000000000000000101)
+bar &gt;&gt;&gt;= 2; // 1073741822 (00111111111111111111111111111110)</pre>
+
+<h3 id="Присваивание_с_побитовым_AND"><a name="Bitwise_AND_assignment">Присваивание с побитовым AND</a></h3>
+
+<p>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.</p>
+
+<h4 id="Синтаксис_10">Синтаксис</h4>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x &amp;= y
+<strong>Значение:</strong> x = x &amp; y
+</pre>
+
+<h4 id="Примеры_10">Примеры</h4>
+
+<pre class="brush: js">var bar = 5;
+// 5: 00000000000000000000000000000101
+// 2: 00000000000000000000000000000010
+bar &amp;= 2; // 0
+</pre>
+
+<h3 id="Присваивание_с_побитовым_XOR"><a name="Bitwise_XOR_assignment">Присваивание с побитовым XOR</a></h3>
+
+<p>Побитовый оператор присваивания XOR использует двоичное представление обоих операндов, выполняет побитовую XOR-операцию и присваивает результат переменной. Для получения более подробной информации см. {{jsxref("Operators/Bitwise_Operators", "Побитовый оператор XOR", "#Bitwise_XOR", 1)}}.</p>
+
+<h4 id="Синтаксис_11">Синтаксис</h4>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x ^= y
+<strong>Значение:</strong> x = x ^ y
+</pre>
+
+<h4 id="Примеры_11">Примеры</h4>
+
+<pre class="brush: js">var bar = 5;
+bar ^= 2; // 7
+// 5: 00000000000000000000000000000101
+// 2: 00000000000000000000000000000010
+// -----------------------------------
+// 7: 00000000000000000000000000000111
+</pre>
+
+<h3 id="Присваиванием_с_побитовым_OR"><a name="Bitwise_OR_assignment">Присваиванием с побитовым OR</a></h3>
+
+<p>Побитовый оператор присваивания OR использует двоичное (бинарное) представление обоих операндов, выполняет побитовое ИЛИ для них и присваивает результат переменной. Дополнительную информацию см. {{jsxref("Operators/Bitwise_Operators", "Побитовый оператор OR", "#Bitwise_OR", 1)}}.</p>
+
+<h4 id="Синтаксис_12">Синтаксис</h4>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x |= y
+<strong>Значение:</strong> x = x | y
+</pre>
+
+<h4 id="Примеры_12">Примеры</h4>
+
+<pre class="brush: js">var bar = 5;
+bar |= 2; // 7
+// 5: 00000000000000000000000000000101
+// 2: 00000000000000000000000000000010
+// -----------------------------------
+// 7: 00000000000000000000000000000111
+</pre>
+
+<h2 id="Примеры_13">Примеры</h2>
+
+<h3 id="Левый_операнд_с_другим_оператором_присваивания">Левый операнд с другим оператором присваивания</h3>
+
+<p>В необычных ситуациях оператор присваивания, например, <em>x += y</em> не идентичен выражению, <em>x = x + y</em>. Когда левый операнд оператора присваивания содержит оператор присваивания, левый операнд оценивается только один раз. Например:</p>
+
+<pre class="brush: js">a[i++] += 5 // i оценивается только один раз
+a[i++] = a[i++] + 5 // i оценивается дважды
+</pre>
+
+<h2 id="Спецификации">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Комментарий</th>
+ </tr>
+ <tr>
+ <td>ECMAScript 1-е издание.</td>
+ <td>Стандарт</td>
+ <td>Изначальное определение.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-11.13', 'Операторы присваивания')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-assignment-operators', 'Операторы присваивания')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td> </td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Совместимость_с_браузерами">Совместимость с браузерами</h2>
+
+<p>{{ CompatibilityTable() }}</p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Возможность</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>Базовая поддержка</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Возможность</th>
+ <th>Android</th>
+ <th>Chrome for Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Базовая поддержка</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ <td>{{ CompatVersionUnknown() }}</td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="Смотрите_также">Смотрите также</h2>
+
+<ul>
+ <li><a href="/ru/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators">Арифметические операции</a></li>
+</ul>