aboutsummaryrefslogtreecommitdiff
path: root/files/ru/conflicting/web/javascript/reference/operators/index.html
diff options
context:
space:
mode:
authorFlorian Dieminger <me@fiji-flo.de>2021-02-11 18:27:57 +0100
committerGitHub <noreply@github.com>2021-02-11 18:27:57 +0100
commit38577fa9b17463b731d503d61bddd399dadea6ac (patch)
tree73b60b0d72190a8da1c1baa063d690f935fb5120 /files/ru/conflicting/web/javascript/reference/operators/index.html
parent609ee7efcfe881caa08237948e1ed3252e60afa1 (diff)
parent786d51e5e35f25c06fc64083574a435e240b2a54 (diff)
downloadtranslated-content-38577fa9b17463b731d503d61bddd399dadea6ac.tar.gz
translated-content-38577fa9b17463b731d503d61bddd399dadea6ac.tar.bz2
translated-content-38577fa9b17463b731d503d61bddd399dadea6ac.zip
Merge pull request #42 from fiji-flo/unslugging-ru
Unslugging ru
Diffstat (limited to 'files/ru/conflicting/web/javascript/reference/operators/index.html')
-rw-r--r--files/ru/conflicting/web/javascript/reference/operators/index.html292
1 files changed, 292 insertions, 0 deletions
diff --git a/files/ru/conflicting/web/javascript/reference/operators/index.html b/files/ru/conflicting/web/javascript/reference/operators/index.html
new file mode 100644
index 0000000000..85a37e17a8
--- /dev/null
+++ b/files/ru/conflicting/web/javascript/reference/operators/index.html
@@ -0,0 +1,292 @@
+---
+title: Арифметические операции
+slug: conflicting/Web/JavaScript/Reference/Operators
+tags:
+ - JavaScript
+ - Операторы
+translation_of: Web/JavaScript/Reference/Operators
+translation_of_original: Web/JavaScript/Reference/Operators/Arithmetic_Operators
+original_slug: Web/JavaScript/Reference/Operators/Arithmetic_Operators
+---
+<div>
+<div>{{jsSidebar("Operators")}}</div>
+</div>
+
+<p><strong>Арифметические операции</strong> принимают в качестве операндов числовые значения (это может быть и литерал и переменная) и возвращают результат в виде одного числового значения. Стандартными арифметическими операциями являются сложение (<code>+</code>), вычитание (<code>-</code>), умножение (<code>*</code>) и деление (<code>/</code>).</p>
+
+<h2 id="Сложение"><a name="Addition">Сложение (+)</a></h2>
+
+<p>Оператор сложения возвращает сумму числовых операндов или объединяет строки.</p>
+
+<h3 id="Syntax" name="Syntax">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x + y
+</pre>
+
+<h3 id="Examples" name="Examples">Примеры</h3>
+
+<pre class="brush: js">// Number + Number -&gt; сложение
+1 + 2 // 3
+
+// Boolean + Number -&gt; сложение
+true + 1 // 2
+
+// Boolean + Boolean -&gt; сложение
+false + false // 0
+
+// Number + String -&gt; конкатенация
+5 + "foo" // "5foo"
+
+// String + Boolean -&gt; конкатенация
+"foo" + false // "foofalse"
+
+// String + String -&gt; конкатенация
+"foo" + "bar" // "foobar"
+</pre>
+
+<h2 id="Вычитание_-"><a name="Subtraction">Вычитание (-)</a></h2>
+
+<p>Оператор вычитания вычитает один операнд из другого и возвращает разницу.</p>
+
+<h3 id="Syntax_2" name="Syntax_2">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x - y
+</pre>
+
+<h3 id="Examples_2" name="Examples_2">Примеры</h3>
+
+<pre class="brush: js">5 - 3 // 2
+3 - 5 // -2
+"foo" - 3 // NaN</pre>
+
+<h2 id="Деление"><a name="Division">Деление (/)</a></h2>
+
+<p>Оператор деления производит деление его операндов, где левый операнд - делимый, а правый - делитель.</p>
+
+<h3 id="Syntax_3" name="Syntax_3">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x / y
+</pre>
+
+<h3 id="Examples_3" name="Examples_3">Примеры</h3>
+
+<pre class="brush: js">1 / 2 // возвращает 0.5 в JavaScript
+1 / 2 // возвращает 0 в Java
+// (так числа не с плавающими точками)
+
+1.0 / 2.0 // возвращает 0.5 и в JavaScript и в Java
+
+2.0 / 0 // возвращает Infinity в JavaScript
+2.0 / 0.0 // тоже возвращает Infinity
+2.0 / -0.0 // возвращает -Infinity в JavaScript</pre>
+
+<h2 id="Умножение_*"><a name="Multiplication">Умножение (*)</a></h2>
+
+<p>Оператор умножения возвращает произведение операндов.</p>
+
+<h3 id="Syntax_4" name="Syntax_4">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Operator:</strong> x * y
+</pre>
+
+<h3 id="Examples_4" name="Examples_4">Примеры</h3>
+
+<pre class="brush: js">2 * 2 // 4
+-2 * 2 // -4
+Infinity * 0 // NaN
+Infinity * Infinity // Infinity
+"foo" * 2 // NaN
+</pre>
+
+<h2 id="Остаток_от_деления"><a name="Remainder">Остаток от деления (%)</a></h2>
+
+<p>Оператор возвращает целый остаток от деления левого операнда на правый. Возвращаемое значение всегда получает знак делимого, а не делителя.  Он использует встроенную функцию <code>modulo</code>, для получения результата, которая является целочисленным остатком деления <code>var1</code> на <code>var2</code> — например— <code>var1</code> modulo <code>var2</code>. <a href="http://wiki.ecmascript.org/doku.php?id=strawman:modulo_operator" title="http://wiki.ecmascript.org/doku.php?id=strawman:modulo_operator">Есть предложение добавить оператор modulo в будущие версии ECMAScript</a>, с той разницей, что оператор будет брать знак делителя, а не делимого.</p>
+
+<h3 id="Syntax_5" name="Syntax_5">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> var1 % var2
+</pre>
+
+<h3 id="Examples_5" name="Examples_5">Примеры</h3>
+
+<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="number token">12</span> <span class="operator token">%</span> <span class="number token">5</span> <span class="comment token">// 2</span>
+<span class="operator token">-</span><span class="number token">1</span> <span class="operator token">%</span> <span class="number token">2</span> <span class="comment token">// -1</span>
+<span class="number token">NaN</span> <span class="operator token">%</span> <span class="number token">2</span> <span class="comment token">// NaN</span>
+<span class="number token">1</span> <span class="operator token">%</span> <span class="number token">2</span> <span class="comment token">// 1</span>
+<span class="number token">2</span> <span class="operator token">%</span> <span class="number token">3</span> <span class="comment token">// 2</span>
+<span class="operator token">-</span><span class="number token">4</span> <span class="operator token">%</span> <span class="number token">2</span> <span class="comment token">// -0</span>
+<span class="number token">5.5</span> <span class="operator token">%</span> <span class="number token">2</span> <span class="comment token">// 1.5</span></code></pre>
+
+<h2 id="Возведение_в_степень_**"><a name="Exponentiation">Возведение в степень (**)</a></h2>
+
+<p>Оператор возведения в степень возвращает результат первого операнда в степень. это, <code>var1</code><sup><code>var2</code></sup>, в предыдущем выражении, где <code>var1</code> и <code>var2</code> - переменные. Он право ассоциативен. <code>a ** b ** c</code> равно <code>a ** (b ** c)</code>.</p>
+
+<h3 id="Синтаксис">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> var1 ** var2</pre>
+
+<h3 id="Замечания">Замечания</h3>
+
+<p>Во многих языках, таких как PHP и Python и других, есть оператор возведения возведения в степень (обычно ^ или **), оператор определён имеющим приоритет выше, чем у унарных операторов, таких как унарный + и унарный -, но есть несколько исключений. Например, в Bash оператор ** создан имеющим приоритет ниже, чем у унарных операторов. В JavaScript невозможно написать двухсмысленное выражение, т.е. вы не можете ставить унарный оператор (<code>+/-/~/!/delete/void/typeof</code>) непосредственно перед базовым числом.</p>
+
+<pre class="brush: js">-2 ** 2;
+// 4 в Bash, -4 в других языках.
+// Это некорректно в JavaScript, т.е. операция двухсмыслена.
+
+
+-(2 ** 2);
+// -4 в JavaScript, намерения автора однозначны.</pre>
+
+<h3 id="Примеры">Примеры</h3>
+
+<pre class="brush: js">2 ** 3 // 8
+3 ** 2 // 9
+3 ** 2.5 // 15.588457268119896
+10 ** -1 // 0.1
+NaN ** 2 // NaN
+
+2 ** 3 ** 2 // 512
+2 ** (3 ** 2) // 512
+(2 ** 3) ** 2 // 64</pre>
+
+<p>Изменим знак результата возведения в степень:</p>
+
+<pre class="brush: js">-(2 ** 2) // -4</pre>
+
+<p>Насильная установка основания как отрицательного числа:</p>
+
+<pre class="brush: js">(-2) ** 2 // 4</pre>
+
+<h2 id="Инкремент"><a name="Increment">Инкремент (++)</a></h2>
+
+<p>Оператор инкремента увеличивает на единицу(инкрементирует) операнд и возвращает значение.</p>
+
+<ul>
+ <li>Если операция используется как постфикс, с оператором после операнда (например, x++), значение операнда возвращается, а затем увеличивается на единицу.</li>
+ <li>Если используется префиксная форма с оператором перед операндом (например, ++x), значение операнда возвращается увеличенным на единицу.</li>
+</ul>
+
+<h3 id="Syntax_6" name="Syntax_6">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x++ или ++x
+</pre>
+
+<h3 id="Examples_6" name="Examples_6">Примеры</h3>
+
+<pre class="brush: js">// Постфиксный
+var x = 3;
+y = x++; // y = 3, x = 4
+
+// Префиксный
+var a = 2;
+b = ++a; // a = 3, b = 3
+</pre>
+
+<h2 id="sect1"></h2>
+
+<h2 id="Декремент_--"><a name="Decrement">Декремент (--)</a></h2>
+
+<p>Операция декремента уменьшает на 1 (отнимает единицу) свой операнд и возвращает значение.</p>
+
+<ul>
+ <li>Если операция используется как постфикс (например, x--), значение операнда возвращается, а затем уменьшается на единицу.</li>
+ <li>Если используется префиксная форма (например, --x), значение операнда возвращается уменьшенным на единицу.</li>
+</ul>
+
+<h3 id="Syntax_7" name="Syntax_7">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x-- или --x
+</pre>
+
+<h3 id="Examples_7" name="Examples_7">Примеры</h3>
+
+<pre class="brush: js">// Постфиксный
+var x = 3;
+y = x--; // y = 3, x = 2
+
+// Префиксный
+var a = 2;
+b = --a; // a = 1, b = 1
+</pre>
+
+<h2 id="Унарный_минус_-"><a name="Unary_negation">Унарный минус (-)</a></h2>
+
+<p>Унарный минус ставится перед своим операндом и возвращает его математическое отрицание.</p>
+
+<h3 id="Syntax_8" name="Syntax_8">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> -x
+</pre>
+
+<h3 id="Examples_8" name="Examples_8">Примеры</h3>
+
+<pre class="brush: js">var x = 3;
+y = -x; // y = -3, x = 3
+</pre>
+
+<h2 id="Унарный_плюс"><a name="Unary_plus">Унарный плюс</a> (+)</h2>
+
+<p>Оператор унарный плюс предшедствует своему операнду и оценивает его, пытается преобразовать его в число, если он им не является. Хотя, унарное отрицание (-) также конвертирует не числа, унарный плюс - быстрейший и предпочитаемый способ конвертирования чего-либо в число потому, что он не выполняет каких-либо операций с числом. Он может конвертировать строковые представления целых и чисел с плавающей точкой, а также нестроковые значения <code>true</code>, <code>false</code> и <code>null</code>. Поддерживаются числа в десятичном и шестнадцатиричном (с префиксом "0x") формате. Отрицательные числа тоже поддерживаются (но не 16-ричные). Если он не может вычислить конкретное значение, выполнится как <a href="/ru/docs/Web/JavaScript/Reference/Global_Objects/NaN">NaN</a>.</p>
+
+<h3 id="Syntax_9" name="Syntax_9">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> +x
+</pre>
+
+<h3 id="Examples_9" name="Examples_9">Примеры</h3>
+
+<pre class="brush: js">+3 // 3
++"3" // 3
++true // 1
++false // 0
++null // 0
+</pre>
+
+<h2 id="Specifications" name="Specifications">Спецификации</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Спецификация</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Примечание</th>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES1')}}</td>
+ <td>{{Spec2('ES1')}}</td>
+ <td>Изначальное определение</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES5.1', '#sec-11.3')}}</td>
+ <td>{{Spec2('ES5.1')}}</td>
+ <td>Определено в нескольких секциях специфии: <a href="http://www.ecma-international.org/ecma-262/5.1/#sec-11.6">Additive operators</a>, <a href="http://www.ecma-international.org/ecma-262/5.1/#sec-11.5">Multiplicative operators</a>, <a href="http://www.ecma-international.org/ecma-262/5.1/#sec-11.3">Postfix expressions</a>, <a href="http://www.ecma-international.org/ecma-262/5.1/#sec-11.4">Unary operators</a>.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES6', '#sec-postfix-expressions')}}</td>
+ <td>{{Spec2('ES6')}}</td>
+ <td>Определено в нескольких секциях специфии: <a href="http://www.ecma-international.org/ecma-262/6.0/#sec-additive-operators">Additive operators</a>, <a href="http://www.ecma-international.org/ecma-262/6.0/#sec-multiplicative-operators">Multiplicative operators</a>, <a href="http://www.ecma-international.org/ecma-262/6.0/#sec-postfix-expressions">Postfix expressions</a>, <a href="http://www.ecma-international.org/ecma-262/6.0/#sec-unary-operators">Unary operators</a>.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES7', '#sec-postfix-expressions')}}</td>
+ <td>{{Spec2('ES7')}}</td>
+ <td>Добавлен <a href="https://github.com/rwaldron/exponentiation-operator">Оператор возведения в степень</a>.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-postfix-expressions')}}</td>
+ <td>{{Spec2('ESDraft')}}</td>
+ <td></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Поддержка_браузерами">Поддержка браузерами</h2>
+
+
+
+<p>{{Compat("javascript.operators.arithmetic")}}</p>
+
+<h2 id="See_also" name="See_also">Смотрите также</h2>
+
+<ul>
+ <li><a href="/ru/docs/Web/JavaScript/Reference/Operators/Assignment_Operators">Операторы присваивания</a></li>
+</ul>