Prioridad de operadores de JavaScript

La prioridad del operador (Operator Precedence) describe el orden de ejecución de las operaciones en una expresión aritmética.

La prioridad de los operadores de multiplicación (*) y división (/) es mayor que la de adición (+) y sustracción (-).

Ejemplo

Al igual que en la matemática tradicional, se realiza primero la multiplicación:

let x = 100 + 50 * 3;

Prueba personalmente

Al usar paréntesis, se calcula primero la operación dentro de los paréntesis:

let x = (100 + 50) * 3;

Prueba personalmente

Operaciones con la misma prioridad (como * y /) se calculan de izquierda a derecha:

let x = 100 / 50 * 3;

Prueba personalmente

Valor de prioridad del operador

La expresión dentro de los paréntesis se calcula antes de la parte restante de la expresión, y la función se ejecuta antes de que el resultado se utilice en la parte restante de la expresión:

Prioridad Operador Descripción Ejemplo
18 ( ) Expresión de agrupación (100 + 50) * 3
17 . Miembro perteneciente person.name
17 [] Miembro perteneciente person["name"]
17 ?. Cadena opcional ES2020 x ?. y
17 () Llamada de función myFunction()
17 new Creación con parámetros new Date("June 5,2022")
16 new Creación sin parámetros new Date()

Operadores de增量

El incremento postfijo se ejecuta antes que el incremento prefijo.

15 ++ Incremento postfijo i++
15 -- Decremento postfijo i--
14 ++ Incremento prefijo ++i
14 -- Decremento prefijo --i

Operador NOT

14 ! No lógico !(x==y)
14 ~ No bit a bit ~x

Operadores unarios

14 + Adición unaria +x
14 - Resta unaria -x
14 typeof Tipo de datos typeof x
14 void Evaluación de nulo void(0)
14 delete Eliminación de atributo delete myCar.color

Operadores aritméticos

La operación exponencial se ejecuta antes que la multiplicación.

La multiplicación y la división se ejecutan antes que la adición y la sustracción.

13 ** Operación exponencial ES2016 10 ** 2
12 * Multiplicación 10 * 5
12 / División 10 / 5
12 % Resto de división 10 % 5
11 + Suma 10 + 5
11 - Resta 10 - 5
11 + Conexión "Bill" + "Gates"

Operadores de desplazamiento

10 << Desplazamiento a la izquierda x << 2
10 >> Desplazamiento a la derecha (con signo) x >> 2
10 >>> Desplazamiento a la derecha (sin signo) x >>> 2

Operadores de relación

9 in Atributo en objeto "PI" in Math
9 instanceof Instancia de objeto x instanceof Array

Operadores de comparación

9 < Menor que x < y
9 <= Menor o igual que x <= y
9 > Mayor que x > y
9 >= Mayor o igual que x >= Array
8 == Igual x == y
8 === Estrictamente igual x === y
8 != No igual x != y
8 !== No estrictamente igual x !== y

Operadores bit a bit

7 & Y bit a bit x & y
6 ^ Xor bit a bit x ^ y
5 | O bit a bit x | y

Operadores lógicos

4 && Y lógico x && y
3 || O lógico x || y
3 ?? Combinación de valores nulos ES2020 x ?? y

Operador de combinación condicional (ternario)

2 ? : Condicional ? "sí" : "no"

Operador de asignación

La asignación se ejecuta después de otras operaciones.

2 = Asignación simple x = y
2 : Asignación de dos puntos x: 5
2 += Asignación de suma x += y
2 -= Asignación de resta x -= y
2 *= Asignación de multiplicación x *= y
2 **= Asignación de exponente x **= y
2 /= Asignación de división x /= y
2 %= Asignación de módulo x %= y
2 <<= Asignación de desplazamiento a la izquierda x <<= y
2 >>= Asignación de desplazamiento a la derecha x >>= y
2 >>>= Desplazamiento a la derecha sin signo x >>>= y
2 &= Asignación de AND bit a bit x &= y
2 |= Asignación de OR bit a bit x |= y
2 ^= Asignación de XOR bit a bit x ^= y
2 &&= Asignación lógica y x &= y
2 ||= Asignación lógica o x ||= y
2 => Operador de flecha x => y
2 yield Pausa / Restauración yield x
2 yield* Operador de delegación yield* Operador de delegación yield* x
2 ... Operador de expansión ... x
1 , Coma x , y

Vea también

Tutoriales:Operadores de JavaScript

Manual de referencia:Operadores de JavaScript