JavaScript Arithmetic
JavaScript Arithmetic Operators
Arithmetic operators are used to perform arithmetic on numbers:
Operator | Description |
---|---|
+ | Addition |
- | Subtraction |
* | Multiplication |
** | Exponentiation (ES2016) |
/ | Division |
% | Modulus (Division Remainder) |
++ | Increment |
-- | Decrement |
Arithmetic Operations
A typical arithmetic operation operates on two numbers. The two numbers can be literals:
var x = (100 + 50) * a;
The numbers (in an arithmetic operation) are called operands. The operation (to be performed between the two operands) is defined by an operator.
Operand | Operator | Operand |
---|---|---|
100 | + | 50 |
Adding, subtract, multiply and divide operators
The addition operator (+) adds numbers:
The subtraction operator (-) subtracts numbers.
The multiplication operator (*) multiplies numbers.
The division operator (/) divides numbers.
var x = 5;
var y = 2;
var z = x + y;
var z = x - y;
var z = x * y;
var z = x / y;
Remainder
The modulus operator (%) returns the division remainder. >
In arithmetic, the division of two integers produces a quotient and a remainder. In mathematics, the result of a modulo operation is the remainder of an arithmetic division.
Incrementing
The increment operator (++) increments numbers.
var x = 5;
x++;
var z = x;
Decrementing
The decrement operator (--) decrements numbers.
var x = 5;
x--;
var z = x;
Exponentiation
The exponentiation operator (**) raises the first operand to the power of the second opera
x ** y produces the same result as Math.pow(x,y):
var x = 5;
var z = x ** 2;
var z = Math.pow(x,2); // result is 25
<
Operator Precedence
Operator precedence describes the order in which operations are performed in an arithmetic expression.
var x = 100 + 50 * 3;
As in traditional school mathematics, the multiplication is done first.
Multiplication (*) and division (/) have higher precedence than addition (+) and subtraction (-). And (as in school mathematics) the precedence can be changed by using parentheses:
var x = (100 + 50) * 3;
When using parentheses, the operations inside the parentheses are computed first.
When many operations have the same precedence (like addition and subtraction), they are computed from left to right:
JavaScript Operator Precedence Values
Pale red entries indicates ECMAScript 2015 (ES6) or higher.
Value | Operator | Description | Example |
---|---|---|---|
20 | ( ) | expressions Grouping | (3+4) |
19 | . | Memberperson.name | |
19 | [] | Member | person["name"] |
19 | () | Function call | myFunction() |
19 | new | create | new Date() |
17 | ++ | Postfix Increment | i++ |
17 | -- | Postfix Decrement | i-- |
16 | ++ | Prefix Increment | ++i |
16 | -- | Prefix Decrement | --i |
16 | ! | Logical Not | !(x==y) |
16 | typeof x | type | typeof x |
15 | ** | Exponentiation (ES2016) | 10**2 |
14 | * | Multiplication | 10*2 |
14 | / | Division | 10/2 |
14 | % | Remainder | 10%2 |
13 | + | Addition | 10+2 |
13 | - | Substraction | 10-2 |
12 | << | Shift left | x<<2 |
12 | >> | Shift right | x>>2 |
12 | >>> | Shift right (unsigned)) | x>>>2 |
11 | < | Less than | x<y |
11 | <= | Less than or equalx<=y | |
11 | > | greater than | x>y |
11 | >= | Greater than or equal | x>y |
11 | in | Property of object | "PI" in Math |
11 | instanceof | Instance of object | instanceof Array |
10 | == | Equal | x=y |
10 | === | Strictly equal | x===y |
10 | != | Unqual | x!=y |
10 | !== | Strictly unequal | x!==y |
9 | & | Bitwise AND | x&y |
8 | ^ | Bitwise XOR | x ^ y |
7 | | | Bitwise OR | x|y |
6 | && | Logical AND | x&&y |
5 | || | Logical OR | x||y |
4 | ?: | Condition | ? "Yes" : "No" |
3 | += | Assignment | x+=y |
3 | /= | Assignment | x/=y |
3 | -= | Assignment | x-=y |
3 | *= | Assignment | x*=y |
3 | %= | Assignment | x%=y |
3 | <<= | Assignment | x<<=y |
3 | >>= | Assignment | x>>=y |
3 | >>>= | Assignment | x>>>=y |
3 | %= | Assignment | x&=y |
3 | ^= | Assignment | x^=y |
3 | |= | Assignment | x|=y |
3 | yeild | Pause Function | x yeild y |
3 | , | comma | 5,6 |