# The JavaScript Arithmetic operators

New Courses Coming Soon

Join the waiting lists

Performing math operations and calculus is a very common thing to do with any programming language. JavaScript offers several operators to help us work with numbers

Performing math operations and calculus is a very common thing to do with any programming language.

JavaScript offers several operators to help us work with numbers.

``````const three = 1 + 2
const four = three + 1
``````

The `+` operator also serves as string concatenation if you use strings, so pay attention:

``````const three = 1 + 2
three + 1 // 4
'three' + 1 // three1
``````

## Subtraction (-)

``````const two = 4 - 2
``````

## Division (/)

Returns the quotient of the first operator and the second:

``````const result = 20 / 5 //result === 4
const result = 20 / 7 //result === 2.857142857142857
``````

If you divide by zero, JavaScript does not raise any error but returns the `Infinity` value (or `-Infinity` if the value is negative).

``````1 / 0 - //Infinity
1 / 0 //-Infinity
``````

## Remainder (%)

The remainder is a very useful calculation in many use cases:

``````const result = 20 % 5 //result === 0
const result = 20 % 7 //result === 6
``````

A remainder by zero is always `NaN`, a special value that means “Not a Number”:

``````;(1 % 0) - //NaN
(1 % 0) //NaN
``````

## Multiplication (*)

Multiply two numbers

``````1 * 2 - //2
1 * 2 //-2
``````

## Exponentiation (**)

Raise the first operand to the power second operand

``````1 ** 2 //1
2 ** 1 //2
2 ** 2 //4
2 ** 8 //256
8 ** 2 //64
``````

The exponentiation operator `**` is the equivalent of using `Math.pow()`, but brought into the language instead of being a library function.

``````Math.pow(4, 2) == 4 ** 2
``````

This feature is a nice addition for math intensive JS applications.

The `**` operator is standardized across many languages including Python, Ruby, MATLAB, Lua, Perl and many others.

## Increment (++)

Increment a number. This is a unary operator, and if put before the number, it returns the value incremented.

If put after the number, it returns the original value, then increments it.

``````let x = 0
x++ //0
x //1
++x //2
``````

## Decrement (`--`)

Works like the increment operator, except it decrements the value.

``````let x = 0
x-- //0
x //-1
--x //-2
``````

## Unary negation (-)

Return the negation of the operand

``````let x = 2 - x //-2
x //2
``````

## Unary plus (+)

If the operand is not a number, it tries to convert it. Otherwise if the operand is already a number, it does nothing.

``````let x = 2 + x //2

x = '2' + x //2

x = '2a' + x //NaN
``````
→ Get my JavaScript Beginner's Handbook
→ Read my JavaScript Tutorials on The Valley of Code
→ Read my TypeScript Tutorial on The Valley of Code