English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A prioridade do operador determina a forma como ele é interpretado entre si.
O operador com maior prioridade se torna o operando do operador com menor prioridade.
No exemplo a seguir, a prioridade da multiplicação é maior do que a da adição, o que determina o resultado da operação.
// Primeiro deve-se3multiplicar5, então somar10 var x = 10 + 3 * 5;Teste para ver‹/›
Por outro lado, se desejamos executar primeiro a operação de adição, devemos agrupá-la em parênteses, que sempre têm a maior prioridade.
// Primeiro deve-se10e3somar, então multiplicar5 var x = (10 + 3) * 5;Teste para ver‹/›
Quando se usa parênteses, primeiro deve-se calcular a operação dentro dos parênteses.
Quando muitos operadores têm a mesma prioridade (por exemplo, adição e subtração), eles são calculados da esquerda para a direita:
var x = 10 + 3 - 5;Teste para ver‹/›
A avaliação da expressão também é afetada pela associatividade do operador.
A associatividade define a direção de avaliação da expressão (de direita para esquerda ou de esquerda para direita).
Se uma expressão contiver dois ou mais operadores com a mesma prioridade, qual operador será calculado primeiro? A associatividade responde a essa pergunta.
Consulte a tabela a seguir para resolver quaisquer problemas de correlação ou prioridade em JavaScript
Operador | Uso da descrição | Combinação de operadores | Prioridade de operador |
---|---|---|---|
() | Método/Chamada de função, agrupamento | Esquerda para direita | Máximo- 1 |
[] | Acesso ao array | Esquerda para direita | 1 |
. | Acesso a propriedades do objeto | Esquerda para direita | 1 |
++ | Incremento | Direita para esquerda | 2 |
-- | Decremento | Direita para esquerda | 2 |
- | Subtração | Direita para esquerda | 2 |
! | Negação lógica | Direita para esquerda | 2 |
~ | Negação bit a bit | Direita para esquerda | 2 |
delete | Excluir valores de array ou propriedades de objeto | Direita para esquerda | 2 |
new | Criar um objeto | Direita para esquerda | 2 |
typeof | Tipo de dados de retorno | Direita para esquerda | 2 |
void | Não especificar o valor a ser retornado | Direita para esquerda | 2 |
/ | Divisão | Esquerda para direita | 3 |
* | Multiplicação | Esquerda para direita | 3 |
% | Módulo | Esquerda para direita | 3 |
+ | Adição | Esquerda para direita | 4 |
+ | Juntamento de strings | Esquerda para direita | 4 |
- | Subtração | Esquerda para direita | 4 |
>>> | Deslocamento à direita bit a bit | Esquerda para direita | 5 |
<< | Deslocamento à esquerda bit a bit | Esquerda para direita | 5 |
>, >= | Maior, maior ou igual | Esquerda para direita | 6 |
<, <= | Menor, menor ou igual | Esquerda para direita | 6 |
== | Igual | Esquerda para direita | 7 |
!= | Diferente | Esquerda para direita | 7 |
=== | Igual/Igual (tipos de dados iguais) | Esquerda para direita | 7 |
!== | Diferente/Diferente (tipos de dados diferentes) | Esquerda para direita | 7 |
& | E bit a bit | Esquerda para direita | 8 |
^ | OU bit a bit exclusivo | Esquerda para direita | 9 |
| | OU bit a bit | Esquerda para direita | 10 |
&& | E lógico | Esquerda para direita | 11 |
|| | OU lógico | Esquerda para direita | 12 |
:? | ramo condicional | Esquerda para direita | 13 |
= | Atribuição | Direita para esquerda | 14 |
*=, /=, %=, +=,, -=, <<=, >>=, >>>=, &=, ^=, |= | Atribuição com base no operador anterior | Direita para esquerda | 14 |
, | Avaliação múltipla | Esquerda para direita | Mínimo:15 |