Precedencia y orden de los operadores en JavaScript

Avatar Tutor | octubre 18, 2018

Si una expresión tiene más de un operador, el orden de ejecución se define por su precedencia o, en otras palabras, existe un orden de prioridad implícito entre los operadores.

Desde la escuela, todos sabemos que la multiplicación en la expresión 1 + 2 * 2 debe calcularse antes de la suma. Eso es exactamente la prioridad. Se dice que la multiplicación tiene una precedencia más alta que la suma.

Los paréntesis anulan cualquier precedencia, por lo que si no estamos satisfechos con el pedido, podemos usarlos, como: (1 + 2) * 2.

Hay muchos operadores en JavaScript. Cada operador tiene un número de precedencia correspondiente. El que tiene el número más grande se ejecuta primero. Si la prioridad es la misma, el orden de ejecución es de izquierda a derecha.

La siguiente tabla esta ordenada de la precedencia más alta (0) a la más baja (18).

Precedencia Tipo de operador Asociatividad Operador
0 grouping n/a ()
1 member left-to-right .
[]
new n/a new … ()
2 function call left-to-right ()
new right-to-left new …
3 increment n/a ++
decrement n/a --
4 logical-not right-to-left !
bitwise not right-to-left ~
unary + right-to-left +
unary negation right-to-left -
typeof right-to-left typeof …
void right-to-left void …
delete right-to-left delete …
5 multiplication left-to-right *
division left-to-right /
modulus left-to-right %
6 addition left-to-right +
subtraction left-to-right -
7 bitwise shift left-to-right <<
>>
>>>
8 relational left-to-right <
<=
>
>=
in left-to-right in
instanceof left-to-right instanceof
9 equality left-to-right ==
!=
===
!==
10 bitwise-and left-to-right &
11 bitwise-xor left-to-right ^
12 bitwise-or left-to-right |
13 logical-and left-to-right &&
14 logical-or left-to-right ||
15 conditional right-to-left … ? … : …
16 assignment right-to-left =
+=
-=
*=
/=
%=
<<=
>>=
>>>=
&=
^=
|=
17 yield right-to-left yield
18 comma left-to-right ,

Written by Tutor