Prioridade de Operadores do JavaScript

A prioridade do operador (Operator Precedence) descreve a ordem de execução das operações em uma expressão aritmética.

A prioridade dos operadores de multiplicação (*) e divisão (/) é maior que a dos operadores de adição (+) e subtração (-).

Exemplo

Como na matemática tradicional, a multiplicação é feita primeiro:

let x = 100 + 50 * 3;

Experimente você mesmo

Quando usar parênteses, o cálculo é feito primeiro dentro dos parênteses:

let x = (100 + 50) * 3;

Experimente você mesmo

Operações com a mesma prioridade (como * e /) são calculadas da esquerda para a direita:

let x = 100 / 50 * 3;

Experimente você mesmo

Valor de prioridade do operador

A expressão entre parênteses é calculada antes da parte restante da expressão, e a função é executada antes do resultado ser usado na parte restante da expressão:

Prioridade Operador Descrição Exemplo
18 ( ) Expressão de agrupamento (100 + 50) * 3
17 . Propriedade pertence person.name
17 [] Propriedade pertence person["name"]
17 ?. Ligação opcional ES2020 x ?. y
17 () Chamada de função myFunction()
17 new Novo com parâmetros new Date("June 5,2022")
16 new Novo sem parâmetros new Date()

Operadores de incremento

O incremento pós-fixo é executado antes do incremento prefixado.

15 ++ Incremento pós-fixo i++
15 -- Decremento pós-fixo i--
14 ++ Incremento prefixado ++i
14 -- Decremento prefixado --i

Operador NOT

14 ! Negação lógica !(x==y)
14 ~ Negação bit a bit ~x

Operadores unários

14 + Adição unária +x
14 - Subtração unária -x
14 typeof Tipo de dados typeof x
14 void Avaliação vazia void(0)
14 delete Exclusão de propriedade delete myCar.color

Operadores aritméticos

A operação de potência é executada antes da multiplicação.

Multiplicação e divisão são executadas antes da adição e subtração.

13 ** Operação de potência ES2016 10 ** 2
12 * Multiplicação 10 * 5
12 / Divisão 10 / 5
12 % Resto da divisão 10 % 5
11 + Adição 10 + 5
11 - Subtração 10 - 5
11 + Concatenação "Bill" + "Gates"

Operadores de deslocamento

10 << Deslocamento à esquerda x << 2
10 >> Deslocamento à direita (com sinal) x >> 2
10 >>> Deslocamento à direita (sem sinal) x >>> 2

Operadores de relação

9 in Propriedade no objeto "PI" in Math
9 instanceof Instância de objeto x instanceof Array

Operadores de comparação

9 < Menor x < y
9 <= Menor ou igual x <= y
9 > Maior x > y
9 >= Maior ou igual x >= Array
8 == Igual x == y
8 === Igual estritamente x === y
8 != Diferente x != y
8 !== Diferente estritamente x !== y

Operadores de bit

7 & E bit a bit x & y
6 ^ Ou bit a bit exclusivo x ^ y
5 | Ou bit a bit x | y

Operadores lógicos

4 && Lógica e x && y
3 || Lógica ou x || y
3 ?? Combinação de valores nulos ES2020 x ?? y

Operador de combinação de condições (ternário)

2 ? : Condicional ? "sim" : "não"

Operador de Atribuição

Atribuição é executada após outras operações.

2 = Atribuição Simples x = y
2 : Atribuição de Ponto x: 5
2 += Atribuição de Adição x += y
2 -= Atribuição de Subtração x -= y
2 *= Atribuição de Multiplicação x *= y
2 **= Atribuição de Exponenciação x **= y
2 /= Atribuição de Divisão x /= y
2 %= Atribuição de Resto x %= y
2 <<= Atribuição de Deslocamento à Esquerda x <<= y
2 >>= Atribuição de Deslocamento à Direita x >>= y
2 >>>= Deslocamento à Direita Sem Sinal x >>>= y
2 &= Atribuição de E Bit a Bit x &= y
2 |= Atribuição de OU Bit a Bit x |= y
2 ^= Atribuição de XOR Bit a Bit x ^= y
2 &&= Atribuição Lógica E x &= y
2 ||= Atribuição Lógica OU x ||= y
2 => Seta x => y
2 yield Pausar / Restaurar yield x
2 yield* Operador de Delegação yield* Operador de Delegação yield* x
2 ... Operador de Expansão ... x
1 , Vírgula x, y

Veja também

Tutorial:Operadores do JavaScript

Manual de Referência:Operadores do JavaScript