Introduction to JavaScript – Math Operators. Don’t worry! Math doesn’t need to be your strong-suit to learn JavaScript. However, there are operators you’ll need to know to make useful programs.

JavaScript supports the following math operators:

 Add: + Subtract: – Multiply: * Divide: /

These all work how you might guess: See sample code below.

```
console.log(3 + 4); // Equals 7
console.log(5 - 1); // Equals 4
console.log(4 * 2); // Equals 8
console.log(9 / 3); // Equals 3

```

In the example above, each line uses a different mathematical operator to log value to the console. Go ahead and modify the code below and run it to view its output. Remember: the more you code the more you know.

## JavaScript Arithmetic Operators

Arithmetic operators perform arithmetic on numbers (literals or variables).

OperatorDescription
Subtraction
*Multiplication
/Division
%Modulus (Remainder)
++Increment
Decrement

## Arithmetic Operations

A typical arithmetic operation operates on two numbers.

The two numbers can be literals:

### Example

var x = 100 + 50;

Try it Yourself »

or variables:

### Example

var x = a + b;

Try it Yourself »

or expressions:

### Example

var x = (100 + 50) * a;

Try it Yourself »

The numbers (in an arithmetic operation) are called operands.

The operation (to be performed between the two operands) is defined by an operator.

OperandOperatorOperand
100+50

var x = 5;
var y = 2;
var z = x + y;

Try it Yourself »

The subtraction operator (-) subtracts numbers.

### Subtracting

var x = 5;
var y = 2;
var z = x – y;

Try it Yourself »

The multiplication operator (*) multiplies numbers.

### Multiplying

var x = 5;
var y = 2;
var z = x * y;

Try it Yourself »

The division operator (/) divides numbers.

### Dividing

var x = 5;
var y = 2;
var z = x / y;

Try it Yourself »

The modular operator (%) returns the division remainder.

### Modulus

var x = 5;
var y = 2;
var z = x % y;

Try it Yourself »

The increment operator (++) increments numbers.

### Incrementing

var x = 5;
x++;
var z = x;

Try it Yourself »

The decrement operator (–) decrements numbers.

### Decrementing

var x = 5;
x–;
var z = x;

Try it Yourself »

## Operator Precedence

Operator precedence describes the order in which operations are performed in an arithmetic expression.

### Example

var x = 100 + 50 * 3;

Try it Yourself »

Is the result of the example above the same as 150 * 3, or is it the same as 100 + 150?

Is the addition or the multiplication done first?

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:

### Example

var x = (100 + 50) * 3;

Try it Yourself »

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:

### Example

var x = 100 + 50 – 3;

Try it Yourself »

## JavaScript Operator Precedence Values

ValueOperatorDescriptionExample
20( )Expression grouping(3 + 4)
19.Memberperson.name
19[]Memberperson[“name”]
19()Function callmyFunction()
19newCreatenew Date()
17++Postfix Incrementi++
17Postfix Decrementi–
16++Prefix Increment++i
16Prefix Decrement–i
16!Logical not!(x==y)
15typeofTypetypeof x
15**Exponentiation10 ** 2
14*Multiplication10 * 5
14/Division10 / 5
14%Modulo division10 % 5
13Subtraction10 – 5
12<<Shift leftx << 2
12>>Shift rightx >> 2
12>>>Shift right (unsigned)x >>> 2
11<Less thanx < y
11<=Less than or equalx <= y
11>Greater thanx > y
11>=Greater than or equalx >= y
10==Equalx == y
10===Strict equalx === y
10!=Unequalx != y
10!==Strict unequalx !== y
6&&Logical andx && y
5||Logical orx || y
3=Assignmentx = y
3+=Assignmentx += y
3-=Assignmentx -= y
3*=Assignmentx *= y
3%=Assignmentx %= y
3<<=Assignmentx <<= y
3>>=Assignmentx >>= y
3>>>=Assignmentx >>>= y
3&=Assignmentx &= y
3^=Assignmentx ^= y
3|=Assignmentx |= y

Pale red entries indicates experimental or proposed technology (ECMAScript 2016 or ES7)

Expressions in parentheses are fully computed before the value is used in the rest of the expression.