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.