Operadores aritméticos realizam as operações aritméticas com números, sejam literais, constantes ou variáveis.

const x = 10 + 20;
var y = x * 30;
var z = x / y;

Principais Operadores Aritméticos

A tabela a seguir contém os principais operadores aritméticos.

Operador

Descrição

+

Adição

-

Subtração

*

Multiplicação

**

Exponenciação

/

Divisão

%

Módulo (Restante)

++

Incremento

--

Decremento

Operações Aritméticas

Uma operação aritmética opera dois números.

Os dois números podem ser literais.

var x = 100 + 50;   // x === 150

Ou com variáveis.

var x = a + b;

ou de expressões combinadas:

var x = (100 + 50) * a;

Operadores e Operandos

Na operação aritmética os números são os operandos, operados pelo operador.

Operando  Operador       Operando
100 + 50

Operador de Adição +

O operador de adição + soma números:

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

Operador de Subtração -

O operador de subtração - subtrai números.

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

Operador de Multiplicação *

O operador de multiplicação * multiplica números.

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

Operador de Divisão /

O operador de divisão ( /) divide números.

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

Operador de Módulo (Resto)

O operador de módulo (%) retorna o resto da divisão.

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

Na aritmética, a divisão de dois números inteiros produz um quociente e um restante.

Em matemática, o resultado da operação de módulo é o restante da divisão aritmética.

Operador de Incremento

O operador de incremento ++ soma 1 ao valor de uma variável numérica.

Se o operador ++ vier depois da variável é primeiro retornado o valor da variável e depois é realizado o seu incremento.

var x = 5; var z = x++; // x === 6, z === 5

Se o operador ++ vier antes da variável é primeiro realizado o incremento do seu valor antes de ser retornado.

var x = 5; var z = ++x; // x === 6, z === 6

Operador de Decremento

O operador de decremento -- subtrai 1 do valor de uma variável numérica.

Se o operador -- vier depois da variável é primeiro retornado o valor da variável e depois é realizado o seu decremento.

var x = 5; var z = x--;   // x === 4, z === 5

Se o operador -- vier antes da variável é primeiro realizado o decremento do seu valor antes de ser retornado.

var x = 5; var z = --x;   // x === 4, z === 4

Operador de Exponenciação

O operador de exponenciação ** eleva o primeiro operando à potência do segundo.

var x = 5; var z = x ** 2;   // z === 25

x ** y produz o mesmo resultado que Math.pow(x,y).

var x = 5; var z = Math.pow(x,2);   // resultado = 25

Precedência de Operador

A precedência do operador descreve a ordem em que as operações são executadas em uma expressão aritmética.

var x = 100 + 50 * 3;   // x === 250

O resultado do exemplo acima é igual a 150 * 3 ou é igual a 100 + 150?

Será a adição ou a multiplicação primeiro operada ?

Como na matemática tradicional da escola, a multiplicação é feita primeiro.

Multiplicação * e divisão / têm maior precedência que adição + e subtração -.

E (como na matemática da escola) a precedência pode ser alterada com o uso de parênteses.

var x = (100 + 50) * 3;   // x === 450

Ao usar parênteses, as operações dentro dos parênteses são calculadas primeiro.

Quando muitas operações têm a mesma precedência (como adição e subtração), elas são calculadas da esquerda para a direita:

var x = 100 + 50 - 3;   // x = 147

Valores de Precedência do Operador JavaScript

Na tabela a seguir são apresentados os operador em ordem de precedência, com um peso atribuído ao operador. Quando o peso for igual para diferentes operadores, isto significa que no caso de uma precedência de operação será executada na ordem da esquerda para direita.

Peso

Operador

Descrição

 Exemplo

20

()

Agrupamento de expressões

(3 + 4)

19

.

Membro

pessoa.nome

19

[]

Membro

pessoa ["nome"]

19

()

Chamada de função

minhaFuncao ()

19

new

Instanciação

Nova data()

17

++

Incremento do sufixo

i ++

17

-

Decremento do sufixo

Eu--

16

++

Incremento de prefixo

++ i

16

-

Decremento de prefixo

--Eu

16

!

Lógico não

! (x == y)

16

typeof

Tipo de dado

typeof x

15

**

Exponenciação

10 ** 2

14

*

Multiplicação

10 * 5

14

/

Divisão

10/5

14

%

Restante da Divisão

10% 5

13

+

Adição

10 + 5

13

-

Subtração

10 - 5

12

<< 

Deslocar para a esquerda

x << 2

12

>> 

Shift right

x >> 2

12

>>> 

Shift à direita (sem sinal)

x >>> 2

11

Menor que

x <y

11

<=

Menor ou igual

x <= y

11

Maior que

x> y

11

> =

Maior que ou igual

x> = y

11

in

Propriedade no objeto

"PI" in Math

11

instance of

Instância do objeto

instanceof Array

10

==

Igual

x == y

10

===

Estrito igual

x === y

10

! =

Desigual

x! = y

10

! ==

Estrito desigual

x! == y

9

&

AND bit a bit

x & y

8

^

Bitwise XOR

x ^ y

7

|

OR bit a bit

x y

6

&&

AND lógico

x && y

5

||

OR lógico

x || y

4

? :

Condição

? "Sim não"

3

+ =

Tarefa

x + = y

3

/ =

Tarefa

x / = y

3

- =

Tarefa

x - = y

3

* =

Tarefa

x * = y

3

% =

Tarefa

x% = y

3

<< =

Tarefa

x << = y

3

>> =

Tarefa

x >> = y

3

>>> =

Tarefa

x >>> = y

3

& =

Tarefa

x & = y

3

^ =

Tarefa

x ^ = y

3

| =

Tarefa

x | = y

2

produção

Função de pausa

rendimento x

1

,

Vírgula

5, 6

Expressões entre parênteses são totalmente calculadas antes que o valor seja usado no restante da expressão.