aboutsummaryrefslogtreecommitdiff
path: root/files/uk/conflicting/web/javascript/reference/operators/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/uk/conflicting/web/javascript/reference/operators/index.html')
-rw-r--r--files/uk/conflicting/web/javascript/reference/operators/index.html314
1 files changed, 314 insertions, 0 deletions
diff --git a/files/uk/conflicting/web/javascript/reference/operators/index.html b/files/uk/conflicting/web/javascript/reference/operators/index.html
new file mode 100644
index 0000000000..88128f5d99
--- /dev/null
+++ b/files/uk/conflicting/web/javascript/reference/operators/index.html
@@ -0,0 +1,314 @@
+---
+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>{{jsSidebar("Operators")}}</div>
+
+<p><strong>Арифметичні оператори</strong> приймають числові значення (або літерали, або змінні) в якості операндів та повертають єдине числове значення. Стандартними арифметичними операторами є додавання (+), віднімання (-), множення (*) та ділення (/).</p>
+
+<div>{{EmbedInteractiveExample("pages/js/expressions-arithmetic.html")}}</div>
+
+
+
+<h2 id="Addition" name="Addition">Додавання (+)</h2>
+
+<p>Оператор додавання повертає суму числових операндів або об'єднання рядків.</p>
+
+<h3 id="Синтаксис">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x + y
+</pre>
+
+<h3 id="Приклади">Приклади</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="Subtraction" name="Subtraction">Віднімання (-)</h2>
+
+<p>Оператор віднімання проводить операцію віднімання між двома операндами, повертаючи різницю між ними.</p>
+
+<h3 id="Синтаксис_2">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x - y
+</pre>
+
+<h3 id="Приклади_2">Приклади</h3>
+
+<pre class="brush: js">5 - 3 // 2
+3 - 5 // -2
+'foo' - 3 // NaN</pre>
+
+<h2 id="Division" name="Division">Ділення (/)</h2>
+
+<p>Оператор ділення повертає частку своїх операндів, де лівий операнд є діленим, а правий операнд є дільником.</p>
+
+<h3 id="Синтаксис_3">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x / y
+</pre>
+
+<h3 id="Приклади_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="Multiplication" name="Multiplication">Множення (*)</h2>
+
+<p>Оператор множення повертає добуток операндів.</p>
+
+<h3 id="Синтаксис_4">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x * y
+</pre>
+
+<h3 id="Приклади_4">Приклади</h3>
+
+<pre class="brush: js">2 * 2 // 4
+-2 * 2 // -4
+Infinity * 0 // NaN
+Infinity * Infinity // Infinity
+'foo' * 2 // NaN
+</pre>
+
+<h2 id="Remainder" name="Remainder">Остача (%)</h2>
+
+<p>Оператор остачі повертає остачу від ділення першого операнду на другий. Він завжди приймає знак діленого.</p>
+
+<h3 id="Синтаксис_5">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> var1 % var2
+</pre>
+
+<h3 id="Приклади_5">Приклади</h3>
+
+<pre class="brush: js">12 % 5 // 2
+-1 % 2 // -1
+1 % -2 // 1
+NaN % 2 // NaN
+1 % 2 // 1
+2 % 3 // 2
+-4 % 2 // -0
+5.5 % 2 // 1.5
+</pre>
+
+<h2 id="Exponentiation" name="Exponentiation">Піднесення до степеня (**)</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="Синтаксис_6">Синтаксис</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="Приклади_6">Приклади</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>
+
+<div class="note">
+<p><strong>Заувага:</strong> JavaScript також має <a href="/uk/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Bitwise_XOR">бітовий оператор ^ (логічний XOR)</a>. <code>**</code> та <code>^</code> відрізняються (наприклад: <code>2 ** 3 === 8</code>, тоді як <code>2 ^ 3 === 1</code>.)</p>
+</div>
+
+<h2 id="Increment" name="Increment">Інкремент (++)</h2>
+
+<p>Оператор інкременту збільшує свій операнд (додає одиницю) та повертає його значення.</p>
+
+<ul>
+ <li>Якщо оператор використовується постфіксно, після операнду (наприклад, x++), тоді він збільшує значення та повертає його до збільшення.</li>
+ <li>Якщо оператор використовується префіксно, перед операндом (наприклад, ++x), тоді він збільшує значення та повертає його після збільшення.</li>
+</ul>
+
+<h3 id="Синтаксис_7">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x++ або ++x
+</pre>
+
+<h3 id="Приклади_7">Приклади</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="Decrement" name="Decrement">Декремент (--)</h2>
+
+<p>Оператор декременту зменшує свій операнд (віднімає одиницю) та повертає його значення.</p>
+
+<ul>
+ <li>Якщо оператор використовується постфіксно, після операнду (наприклад, x--), тоді він зменшує значення та повертає його до зменшення.</li>
+ <li>Якщо оператор використовується префіксно, перед операндом (наприклад, --x), тоді він зменшує значення та повертає його після зменшення.</li>
+</ul>
+
+<h3 id="Синтаксис_8">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> x-- або --x
+</pre>
+
+<h3 id="Приклади_8">Приклади</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="Unary_negation" name="Unary_negation">Унарний мінус (-)</h2>
+
+<p>Унарний мінус ставиться перед своїм операндом та міняє його знак на протилежний.</p>
+
+<h3 id="Синтаксис_9">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> -x
+</pre>
+
+<h3 id="Приклади_9">Приклади</h3>
+
+<pre class="brush: js">var x = 3;
+y = -x; // y = -3, x = 3
+
+// Унарний мінус може перетворити нечислове значення на число
+var x = "4";
+y = -x; // y = -4
+</pre>
+
+<h2 id="Унарний_плюс"><a id="Unary_plus" name="Unary_plus">Унарний плюс (+)</a></h2>
+
+<p>Унарний плюс ставиться перед своїм операндом та повертає значення операнду, але намагається перетворити його на число, якщо він не є числом. Хоча унарний мінус (-) також вміє перетворювати нечислові значення, унарний плюс найшвидший та найкращий спосіб перетворити щось у число, тому що він не виконує ніяких інших операцій з числом. Він може перетворювати рядкові представлення цілих чисел та чисел з рухомою комою, а також нерядкові значення <code>true</code>, <code>false</code> та <code>null</code>. Підтримуються цілі числа у десятковому та шістнадцятковому форматах. Підтримуються від'ємні числа (хоча не у шістнадцятковому форматі). Якщо оператор не може розібрати певне значення, він поверне {{jsxref("NaN")}}.</p>
+
+<h3 id="Синтаксис_10">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Оператор:</strong> +x
+</pre>
+
+<h3 id="Приклади_10">Приклади</h3>
+
+<pre class="brush: js">+3 // 3
++'3' // 3
++true // 1
++false // 0
++null // 0
++function(val){ return val } // NaN
+</pre>
+
+<h2 id="Специфікації">Специфікації</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Специфікація</th>
+ <th scope="col">Статус</th>
+ <th scope="col">Коментар</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-additive-operators')}}</td>
+ <td>{{Spec2('ESDraft')}}</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES2016', '#sec-postfix-expressions')}}</td>
+ <td>{{Spec2('ES2016')}}</td>
+ <td>Доданий <a href="https://github.com/rwaldron/exponentiation-operator">Оператор піднесення до степеня</a>.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES2017', '#sec-postfix-expressions')}}</td>
+ <td>{{Spec2('ES2017')}}</td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES2015', '#sec-postfix-expressions')}}</td>
+ <td>{{Spec2('ES2015')}}</td>
+ <td>Визначені у кількох розділах специфікації: <a href="http://www.ecma-international.org/ecma-262/6.0/#sec-additive-operators">Адитивні оператори</a>, <a href="http://www.ecma-international.org/ecma-262/6.0/#sec-multiplicative-operators">мультиплікативні оператори</a>, <a href="http://www.ecma-international.org/ecma-262/6.0/#sec-postfix-expressions">постфіксні вирази</a>, <a href="http://www.ecma-international.org/ecma-262/6.0/#sec-unary-operators">унарні оператори</a>.</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">Адитивні оператори</a>, <a href="http://www.ecma-international.org/ecma-262/5.1/#sec-11.5">мультиплікативні оператори</a>, <a href="http://www.ecma-international.org/ecma-262/5.1/#sec-11.3">постфіксні вирази</a>, <a href="http://www.ecma-international.org/ecma-262/5.1/#sec-11.4">унарні оператори</a>.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ES1')}}</td>
+ <td>{{Spec2('ES1')}}</td>
+ <td>Початкове визначення.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>
+
+
+
+<p>{{Compat("javascript.operators.arithmetic")}}</p>
+
+<h2 id="Див._також">Див. також</h2>
+
+<ul>
+ <li><a href="/uk/docs/Web/JavaScript/Reference/Operators/Оператори_присвоєння">Оператори присвоєння</a></li>
+</ul>