I. Precedencia de Operadores

Aquí se muestra el orden en que se ejecutan los operadores de JavaScript cuando se combinan en una expresión. Los que aparecen primero son los que se ejecutan primero. Una tabla similar para Kotlin está en desarrollo.

Orden Descripción Asociatividad Operador ejempo
1 agrupamiento n/a () (2 + 3)
2 miembro izquierda a derecha . a.b
[] a[0]
new n/a new() new Clase(0)
invocación a función izquierda a derecha () fn(x)
3 incremento sufijo n/a ++ a++
decremento sufijo n/a -- a--
4 incremento prefijo n/a ++ ++a
decremento prefijo n/a -- --a
not lógico derecha a izquierda ! !a
not a nivel de bits derecha a izquierda ~ ~a
+ unario derecha a izquierda + +a
negación unaria derecha a izquierda - -a
typeof derecha a izquierda typeof typeof a
void derecha a izquierda void void a
delete derecha a izquierda delete delete a.nombre
5 exponenciación n/a ** a ** b
6 multiplicación izquierda a derecha * a * b
división izquierda a derecha / a / b
residuo izquierda a derecha % a % b
7 suma izquierda a derecha + a + b
resta izquierda a derecha - a - b
8 corrimiento de bits izquierda a derecha << a << b
>> a >> b
>>> a >>> b
9 relacional izquierda a derecha < a < b
<= a <= b
> a > b
>= a >= b
in izquierda a derecha in "nombre" in a
instanceof izquierda a derecha instanceof a instanceof Array
10 igualdad izquierda a derecha == a == b
!= a != b
=== a === b
!== a !== b
11 and de bits izquierda a derecha & a & b
12 xor de bits izquierda a derecha ^ a ^ b
13 or de bits izquierda a derecha | a | b
14 and lógico izquierda a derecha && a && b
15 or lógico izquierda a derecha || a || b
16 condicional derecha a izquierda ?: a ? b : c
17 asignación derecha a izquierda = a = b
+= a += b
-= a -= b
*= a *= b
/= a /= b
%= a %= b
<<= a <<= b
>>= a >>= b
>>>= a >>>= b
&= a &= b
^= a ^= b
|= a |= b
18 yield derecha a izquierda yield yield a
19 coma izquierda a derecha , a , b

Fuentes: