aboutsummaryrefslogtreecommitdiff
path: root/files/bg/conflicting/web/javascript/reference
diff options
context:
space:
mode:
authorFlorian Merz <me@fiji-flo.de>2021-02-11 14:44:43 +0100
committerFlorian Merz <me@fiji-flo.de>2021-02-11 14:44:43 +0100
commitd140d7ec01cb456cb5548feb3b439830370ea210 (patch)
treef9161e76e23b293619aa2c8578657277a14db3b2 /files/bg/conflicting/web/javascript/reference
parent8260a606c143e6b55a467edf017a56bdcd6cba7e (diff)
downloadtranslated-content-d140d7ec01cb456cb5548feb3b439830370ea210.tar.gz
translated-content-d140d7ec01cb456cb5548feb3b439830370ea210.tar.bz2
translated-content-d140d7ec01cb456cb5548feb3b439830370ea210.zip
unslug bg: move
Diffstat (limited to 'files/bg/conflicting/web/javascript/reference')
-rw-r--r--files/bg/conflicting/web/javascript/reference/operators/index.html294
1 files changed, 294 insertions, 0 deletions
diff --git a/files/bg/conflicting/web/javascript/reference/operators/index.html b/files/bg/conflicting/web/javascript/reference/operators/index.html
new file mode 100644
index 0000000000..085aebbbc6
--- /dev/null
+++ b/files/bg/conflicting/web/javascript/reference/operators/index.html
@@ -0,0 +1,294 @@
+---
+title: Arithmetic operators
+slug: Web/JavaScript/Reference/Operators/Arithmetic_Operators
+translation_of: Web/JavaScript/Reference/Operators
+translation_of_original: Web/JavaScript/Reference/Operators/Arithmetic_Operators
+---
+<div>{{jsSidebar("Operators")}}</div>
+
+<p><strong>Аритметичните оператори </strong>приемат числови стойности като техен операнд и връща единична числова стойност. Стандартните аритметични оператори са събиране (<strong>+</strong>), изваждане (<strong>-</strong>), умножение (<strong>*</strong>), делене(<strong>/</strong>)</p>
+
+<div>{{EmbedInteractiveExample("pages/js/expressions-arithmetic.html")}}</div>
+
+<div class="hidden">The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> and send us a pull request.</div>
+
+<h2 id="Addition" name="Addition">Събиране (+)</h2>
+
+<p>Операторът за събиране произвежда сумата от числови операнди или конкатенация на стрингове.</p>
+
+<h3 id="Синтаксис">Синтаксис</h3>
+
+<pre class="syntaxbox"><strong>Operator:</strong> <var>x</var> + <var>y</var>
+</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">Subtraction (-)</h2>
+
+<p>The subtraction operator subtracts the two operands, producing their difference.</p>
+
+<h3 id="Syntax">Syntax</h3>
+
+<pre class="syntaxbox"><strong>Operator:</strong> <var>x</var> - <var>y</var>
+</pre>
+
+<h3 id="Examples">Examples</h3>
+
+<pre class="brush: js">5 - 3 // 2
+3 - 5 // -2
+'foo' - 3 // NaN</pre>
+
+<h2 id="Division" name="Division">Division (/)</h2>
+
+<p>The division operator produces the quotient of its operands where the left operand is the dividend and the right operand is the divisor.</p>
+
+<h3 id="Syntax_2">Syntax</h3>
+
+<pre class="syntaxbox"><strong>Operator:</strong> <var>x</var> / <var>y</var>
+</pre>
+
+<h3 id="Examples_2">Examples</h3>
+
+<pre class="brush: js">1 / 2 // returns 0.5 in JavaScript (In Java, returns 0; both are integers)
+// (neither 1 nor 2 is explicitly a floating point number)
+
+Math.floor(3 / 2) // returns 1
+1.0 / 2.0 // returns 0.5 in both JavaScript and Java
+
+2.0 / 0 // returns Infinity
+2.0 / 0.0 // ditto, because 0.0 === 0
+2.0 / -0.0 // returns -Infinity</pre>
+
+<h2 id="Multiplication" name="Multiplication">Multiplication (*)</h2>
+
+<p>The multiplication operator produces the product of the operands.</p>
+
+<h3 id="Syntax_3">Syntax</h3>
+
+<pre class="syntaxbox"><strong>Operator:</strong> <var>x</var> * <var>y</var>
+</pre>
+
+<h3 id="Examples_3">Examples</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">Remainder (%)</h2>
+
+<p>The remainder operator returns the remainder left over when one operand is divided by a second operand. It always takes the sign of the dividend.</p>
+
+<h3 id="Syntax_4">Syntax</h3>
+
+<pre class="syntaxbox"><strong>Operator:</strong> <var>var1</var> % <var>var2</var>
+</pre>
+
+<h3 id="Examples_4">Examples</h3>
+
+<pre class="brush: js"> 12 % 5 // 2
+-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">Exponentiation (**)</h2>
+
+<p>The exponentiation operator returns the result of raising the first operand to the power of the second operand. That is, <code><var>var1</var></code><sup><code><var>var2</var></code></sup>, in the preceding statement, where <code><var>var1</var></code> and <code><var>var2</var></code> are variables. The exponentiation operator is right-associative. <code><var>a</var> ** <var>b</var> ** <var>c</var></code> is equal to <code><var>a</var> ** (<var>b</var> ** <var>c</var>)</code>.</p>
+
+<h3 id="Syntax_5">Syntax</h3>
+
+<pre class="syntaxbox"><strong>Operator:</strong> <var>var1</var> ** <var>var2</var>
+</pre>
+
+<h3 id="Notes">Notes</h3>
+
+<p>In most languages, such as PHP, Python, and others that have an exponentiation operator (<code>**</code>), the exponentiation operator is defined to have a higher precedence than unary operators, such as unary <code>+</code> and unary <code>-</code>, but there are a few exceptions. For example, in Bash, the <code>**</code> operator is defined to have a lower precedence than unary operators.</p>
+
+<p>In JavaScript, it is impossible to write an ambiguous exponentiation expression; that is, you cannot put a unary operator (<code>+/-/~/!/delete/void/typeof</code>) immediately before the base number.</p>
+
+<pre class="brush: js">-2 ** 2;
+// 4 in Bash, -4 in other languages.
+// This is invalid in JavaScript, as the operation is ambiguous.
+
+
+-(2 ** 2);
+// -4 in JavaScript and the author's intention is unambiguous.
+</pre>
+
+<h3 id="Examples_5">Examples</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>To invert the sign of the result of an exponentiation expression:</p>
+
+<pre class="brush: js">-(2 ** 2) // -4
+</pre>
+
+<p>To force the base of an exponentiation expression to be a negative number:</p>
+
+<pre class="brush: js">(-2) ** 2 // 4
+</pre>
+
+<div class="note">
+<p><strong>Note:</strong> JavaScript also has <a href="/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Bitwise_XOR">a bitwise operator ^ (logical XOR)</a>. <code>**</code> and <code>^</code> are different (for example : <code>2 ** 3 === 8</code> when <code>2 ^ 3 === 1</code>.)</p>
+</div>
+
+<h2 id="Increment" name="Increment">Increment (++)</h2>
+
+<p>The increment operator increments (adds one to) its operand and returns a value.</p>
+
+<ul>
+ <li>If used postfix, with operator after operand (for example, <code><var>x</var>++</code>), then it increments and returns the value before incrementing.</li>
+ <li>If used prefix, with operator before operand (for example, <code>++<var>x</var></code>), then it increments and returns the value after incrementing.</li>
+</ul>
+
+<h3 id="Syntax_6">Syntax</h3>
+
+<pre class="syntaxbox"><strong>Operator:</strong> <var>x</var>++ or ++<var>x</var>
+</pre>
+
+<h3 id="Examples_6">Examples</h3>
+
+<pre class="brush: js">// Postfix
+var x = 3;
+y = x++; // y = 3, x = 4
+
+// Prefix
+var a = 2;
+b = ++a; // a = 3, b = 3
+</pre>
+
+<h2 id="Decrement" name="Decrement">Decrement (--)</h2>
+
+<p>The decrement operator decrements (subtracts one from) its operand and returns a value.</p>
+
+<ul>
+ <li>If used postfix, with operator after operand (for example, <code><var>x</var>--</code>), then it decrements and returns the value before decrementing.</li>
+ <li>If used prefix, with operator before operand (for example, <code>--<var>x</var></code>), then it decrements and returns the value after decrementing.</li>
+</ul>
+
+<h3 id="Syntax_7">Syntax</h3>
+
+<pre class="syntaxbox"><strong>Operator:</strong> <var>x</var>-- or --<var>x</var>
+</pre>
+
+<h3 id="Examples_7">Examples</h3>
+
+<pre class="brush: js">// Postfix
+var x = 3;
+y = x--; // y = 3, x = 2
+
+// Prefix
+var a = 2;
+b = --a; // a = 1, b = 1
+</pre>
+
+<h2 id="Unary_negation" name="Unary_negation">Unary negation (-)</h2>
+
+<p>The unary negation operator precedes its operand and negates it.</p>
+
+<h3 id="Syntax_8">Syntax</h3>
+
+<pre class="syntaxbox"><strong>Operator:</strong> -<var>x</var>
+</pre>
+
+<h3 id="Examples_8">Examples</h3>
+
+<pre class="brush: js">var x = 3;
+y = -x; // y = -3, x = 3
+
+// Unary negation operator can convert non-numbers into a number
+var x = "4";
+y = -x; // y = -4
+</pre>
+
+<h2 id="Unary_plus" name="Unary_plus">Unary plus (+)</h2>
+
+<p>The unary plus operator precedes its operand and evaluates to its operand but attempts to convert it into a number, if it isn't already. Although unary negation (<code>-</code>) also can convert non-numbers, unary plus is the fastest and preferred way of converting something into a number, because it does not perform any other operations on the number. It can convert string representations of integers and floats, as well as the non-string values <code>true</code>, <code>false</code>, and <code>null</code>. Integers in both decimal and hexadecimal (<code>0x</code>-prefixed) formats are supported. Negative numbers are supported (though not for hex). If it cannot parse a particular value, it will evaluate to {{jsxref("NaN")}}.</p>
+
+<h3 id="Syntax_9">Syntax</h3>
+
+<pre class="syntaxbox"><strong>Operator:</strong> +<var>x</var>
+</pre>
+
+<h3 id="Examples_9">Examples</h3>
+
+<pre class="brush: js">+3 // 3
++'3' // 3
++true // 1
++false // 0
++null // 0
++function(val){ return val } // NaN
+</pre>
+
+<h2 id="Specifications">Specifications</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Specification</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-additive-operators', 'Additive operators')}}</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-postfix-expressions', 'Postfix expressions')}}</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-11.5', 'Multiplicative operators')}}</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-11.4', 'Unary operator')}}</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility">Browser compatibility</h2>
+
+
+
+<p>{{Compat("javascript.operators.arithmetic")}}</p>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Assignment_Operators">Assignment operators</a></li>
+</ul>