Arithmetic operators

This translation is incomplete. Please help translate this article from English

Aritmetik operatörler sayısal değerleri (değişmez değerler veya değişkenler) kendi değişkeni olarak alır ve tek bir sayısal değer döndürür. Standart aritmetik operatörler toplama (+), çıkarma (-), çıkarma (*), ve bölme (/).

Toplama (+)

Toplama işleci, sayısal değişkenlerin veya dize birleşiminin toplamını üretir.

Syntax

Operator: x + y

Examples

// Number + Number -> Toplama
1 + 2 // 3

// Boolean + Number -> Toplama
true + 1 // 2

// Boolean + Boolean -> Toplama
false + false // 0

// Number + String -> Birleşim
5 + 'foo' // "5foo"

// String + Boolean -> Birleşim
'foo' + false // "foofalse"

// String + String -> Birleşim
'foo' + 'bar' // "foobar"

Çıkarma (-)

Çıkarma işleci (operator), iki değişkeni çıkarır ve farklarını üretir.

Söz Dizimi

Operator: x - y

Örnekler

5 - 3 // 2
3 - 5 // -2
'foo' - 3 // NaN(Sayı Değil)

Bölme (/)

Bölme operatörü, sol değişkenin bölüm olduğu ve sağ değişkenin bölen olduğu işlenenlerin bölümünü üretir.

Söz Dizimi

Operator: x / y

Örnekler

1 / 2      // 0.5 döndürür
1 / 2      // Java''da 0 döndürür
// (her iki sayı da açıkça kayan nokta sayısıdır)

1.0 / 2.0  // JavaScript ve Java 0.5 döndürür

2.0 / 0    // JavaScript sonsuz döndürür
2.0 / 0.0  // Sonsuzu da döndürür
2.0 / -0.0 // JavaScript eksi sonsuz da döndürür

Çarpma (*)

Çarpma operatörü değişkenlerin ürününü üretir.

Söz Dizimi

Operator: x * y

Örnekler

2 * 2 // 4
-2 * 2 // -4
Infinity * 0 // NaN(Sayı Değil1)
Infinity * Infinity // Sonsuz
'foo' * 2 // NaN

Kalan (%)

Kalan operatörü, bir değişken ikinci bir değişken tarafından bölündüğünde kalan döndürür. Her zaman bölüm işareti alır.

Söz Dizimi

Operator: var1 % var2

Örnekler

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

Üs (**)

The exponentiation operator returns the result of raising first operand to the power second operand. That is, var1var2, in the preceding statement, where var1 and var2 are variables. Exponentiation operator is right associative. a ** b ** c is equal to a ** (b ** c).

Syntax

Operator: var1 ** var2

Notes

In most languages like PHP and Python and others that have an exponentiation operator (**), the exponentiation operator is defined to have a higher precedence than unary operators such as unary + and unary -, but there are a few exceptions. For example, in Bash the ** operator is defined to have a lower precedence than unary operators. In JavaScript, it is impossible to write an ambiguous exponentiation expression, i.e. you cannot put a unary operator (+/-/~/!/delete/void/typeof) immediately before the base number.

-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. 

Examples

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

To invert the sign of the result of an exponentiation expression:

-(2 ** 2) // -4

To force the base of an exponentiation expression to be a negative number:

(-2) ** 2 // 4

Note: JavaScript also has a bitwise operator ^ (logical XOR). ** and ^ are different (for example : 2 ** 3 === 8 when 2 ^ 3 === 1.)

Artırma (++)

Artış operatörü işlenenini artırır (bir ekler) ve bir değer döndürür.

  • İlk önce değişken adı kullanılırsa, değişkenden sonra operatörle (örneğin, x++) kullanılırsa artmadan önce değeri artırır ve döndürür.
  • Ön ek kullanılırsa, değişkenden önce operatörle (örneğin, ++x), daha sonra artırıldıktan sonra değeri artıtrır ve döndürür.

Söz Dizimi

Operator: x++ yada ++x

Örnekler

// Postfix 
var x = 3;
y = x++; // y = 3, x = 4

// Prefix
var a = 2;
b = ++a; // a = 3, b = 3

Azaltma (--)

The decrement operator decrements (subtracts one from) its operand and returns a value.

  • If used postfix, with operator after operand (for example, x--), then it decrements and returns the value before decrementing.
  • If used prefix, with operator before operand (for example, --x), then it decrements and returns the value after decrementing.

Syntax

Operator: x-- or --x

Examples

// Postfix 
var x = 3;
y = x--; // y = 3, x = 2

// Prefix
var a = 2;
b = --a; // a = 1, b = 1

Unary negation (-)

The unary negation operator precedes its operand and negates it.

Syntax

Operator: -x

Examples

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

Unary plus (+)

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 (-) 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 true, false, and null. Integers in both decimal and hexadecimal ("0x"-prefixed) formats are supported. Negative numbers are supported (though not for hex). If it cannot parse a particular value, it will evaluate to NaN.

Syntax

Operator: +x

Examples

+3     // 3
+'3'   // 3
+true  // 1
+false // 0
+null  // 0
+function(val){ return val } // NaN

Specifications

Specification
ECMAScript (ECMA-262)
The definition of 'Additive operators' in that specification.
ECMAScript (ECMA-262)
The definition of 'Postfix expressions' in that specification.
ECMAScript (ECMA-262)
The definition of 'Multiplicative operators' in that specification.
ECMAScript (ECMA-262)
The definition of 'Unary operator' in that specification.

Browser compatibility

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Addition (+)Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Decrement (--)Chrome Full support 2Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 4WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 3.2Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Division (/)Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Exponentiation (**)Chrome Full support 52Edge Full support 14Firefox Full support 52IE No support NoOpera Full support 39Safari Full support 10.1WebView Android Full support 51Chrome Android Full support 52Firefox Android Full support 52Opera Android Full support 41Safari iOS Full support 10.3Samsung Internet Android Full support 6.0nodejs Full support 7.0.0
Full support 7.0.0
Full support 6.5.0
Disabled
Disabled From version 6.5.0: this feature is behind the --harmony runtime flag.
Increment (++)Chrome Full support 2Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 4WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 3.2Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Multiplication (*)Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Remainder (%)Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Subtraction (-)Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Unary negation (-)Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Unary plus (+)Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 4Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100

Legend

Full support  
Full support
No support  
No support
User must explicitly enable this feature.
User must explicitly enable this feature.

See also