Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Precedência de Operadores

Esta tradução está incompleta. Ajude atraduzir este artigo.

Resumo

A precedência de operadores determina a ordem em que os operadores são processados. Operadores com maior precedência são processados primeiro.

Um exemplo simples:

3 + 4 * 5 // returns 23	 

O operador de multiplicação ("*") tem maior precedência que o operador de adição ("+") e por isso será executado primeiro.

Associatividade

Associatividade determina a ordem em que operadores da mesma precedência são processados. Por exemplo, considere a expressão:

a OP b OP c

Associatividade à esquerda (esquerda para direita) significa que a expressão será processada como (a OP b) OP c, enquanto associatividade à direita (direita para esquerda) significa que será interpretada como a OP (b OP c). Operadores de atribuição são associativos à direita, então você pode escrever:

a = b = 5; 5 = b = a

com o resultado esperado que a e b tenham o valor 5. Isto é porque o operador de atribuição retorna o valor que ele atribuiu. Primeiro, b é definido com o valor 5. Então a é definido com o valor de b.

Tabela

A tabela seguinte está ordenada da mais alta (0) para a mais baixa (19) precedência.

Precedência Tipo do Operador Associatividade Operadores individuais
0 Agrupamento n/a ( … )
1 Acesso a Membro esquerda para direita … . …
Acesso a Membro Computado esquerda para direita … [ … ]
new (com lista de argumentos) n/a new … ( … )
2 Chamada a Função esquerda para direita … ( … )
new (sem lista de argumentos) direita para esquerda new …
3 Incremento Pós-fixado n/a … ++
Decremento Pós-fixado n/a … --
4 NÃO lógico direita para esquerda ! …
NÃO bit-a-bit direita para esquerda ~ …
Positivo Unário direita para esquerda + …
Negativo Unário direita para esquerda - …
Incremento Pré-fixado direita para esquerda ++ …
Decremento Pré-fixado direita para esquerda -- …
typeof direita para esquerda typeof …
void direita para esquerda void …
delete direita para esquerda delete …
5 Multiplicação esquerda para direita … * …
Divisão esquerda para direita … / …
Resto esquerda para direita … % …
6 Adição esquerda para direita … + …
Subtração esquerda para direita … - …
7 Deslocamento de bits para esquerda esquerda para direita … << …
Deslocamento de bits para direita esquerda para direita … >> …
Deslocamento de bits para direita, sem sinal esquerda para direita … >>> …
8 Menor Que esquerda para direita … < …
Menor ou Igual a esquerda para direita … <= …
Maior Que esquerda para direita … > …
Maior ou Igual a esquerda para direita … >= …
in esquerda para direita … in …
instanceof esquerda para direita … instanceof …
9 Igualdade esquerda para direita … == …
Desigualdade esquerda para direita … != …
Igualdade Estrita esquerda para direita … === …
Desigualdade Estrita esquerda para direita … !== …
10 E bit-a-bit esquerda para direita … & …
11 OU exclusivo bit-a-bit esquerda para direita … ^ …
12 OU bit-a-bit esquerda para direita … | …
13 E lógico esquerda para direita … && …
14 OU lógico esquerda para direita … || …
15 Condicional direita para esquerda … ? … : …
16 Atribuição direita para esquerda … = …
… += …
… -= …
… *= …
… /= …
… %= …
… <<= …
… >>= …
… >>>= …
… &= …
… ^= …
… |= …
17 yield direita para esquerda yield …
18 Propagação n/a ... …
19 Vírgula / Sequência esquerda para direita … , …

 

Etiquetas do documento e colaboradores

 Colaboradores desta página: ShadYueh
 Última atualização por: ShadYueh,