diff options
author | Florian Merz <me@fiji-flo.de> | 2021-02-11 14:51:05 +0100 |
---|---|---|
committer | Florian Merz <me@fiji-flo.de> | 2021-02-11 14:51:05 +0100 |
commit | c058fa0fb22dc40ef0225b21a97578cddd0aaffa (patch) | |
tree | df20f8b4c724b61cb9c34cdb450a7ac77d690bd0 /files/ru/web/javascript/reference/operators/arithmetic_operators | |
parent | 8260a606c143e6b55a467edf017a56bdcd6cba7e (diff) | |
download | translated-content-c058fa0fb22dc40ef0225b21a97578cddd0aaffa.tar.gz translated-content-c058fa0fb22dc40ef0225b21a97578cddd0aaffa.tar.bz2 translated-content-c058fa0fb22dc40ef0225b21a97578cddd0aaffa.zip |
unslug ru: move
Diffstat (limited to 'files/ru/web/javascript/reference/operators/arithmetic_operators')
-rw-r--r-- | files/ru/web/javascript/reference/operators/arithmetic_operators/index.html | 291 |
1 files changed, 0 insertions, 291 deletions
diff --git a/files/ru/web/javascript/reference/operators/arithmetic_operators/index.html b/files/ru/web/javascript/reference/operators/arithmetic_operators/index.html deleted file mode 100644 index f1091e3706..0000000000 --- a/files/ru/web/javascript/reference/operators/arithmetic_operators/index.html +++ /dev/null @@ -1,291 +0,0 @@ ---- -title: Арифметические операции -slug: Web/JavaScript/Reference/Operators/Arithmetic_Operators -tags: - - JavaScript - - Операторы -translation_of: Web/JavaScript/Reference/Operators -translation_of_original: 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 -> сложение -1 + 2 // 3 - -// Boolean + Number -> сложение -true + 1 // 2 - -// Boolean + Boolean -> сложение -false + false // 0 - -// Number + String -> конкатенация -5 + "foo" // "5foo" - -// String + Boolean -> конкатенация -"foo" + false // "foofalse" - -// String + String -> конкатенация -"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> |