4. Prioridad de operadores y uso de paréntesis

Cuando una expresión combina varias operaciones, el orden de evaluación cambia el resultado. Los paréntesis permiten controlar ese orden y escribir cálculos más claros.

4.1 Introducción

En matemática y en programación, las expresiones no se resuelven necesariamente de izquierda a derecha. Cada operador tiene una prioridad. Por eso, una multiplicación puede ejecutarse antes que una suma aunque aparezca después en la expresión.

Este tema es fundamental porque muchos errores de programación no aparecen por desconocer una operación, sino por escribir una expresión cuyo orden de evaluación no es el que esperamos.

En JavaScript se aplican reglas de precedencia similares a las que usamos en matemática básica, aunque el lenguaje incluye muchos operadores adicionales.

4.2 Qué significa prioridad de operadores

La prioridad de operadores indica qué operación se realiza primero cuando una expresión contiene varios operadores.

2 + 3 × 4

La multiplicación tiene mayor prioridad que la suma, por lo tanto se calcula primero 3 × 4 y luego se suma 2.

console.log(2 + 3 * 4);

Si se resolviera estrictamente de izquierda a derecha, el resultado sería distinto. Por eso es importante conocer la regla.

4.3 Orden básico de las operaciones

En expresiones aritméticas básicas, el orden habitual es:

  1. Paréntesis.
  2. Potencias y raíces, cuando corresponda.
  3. Multiplicación y división.
  4. Suma y resta.

En JavaScript, las potencias se escriben con **, la multiplicación con *, la división con /, la suma con + y la resta con -.

Prioridad Operación Operador en JavaScript Ejemplo
Alta Paréntesis ( ) (2 + 3) * 4
Alta Potencia ** 2 ** 3
Media Multiplicación y división * y / 10 / 2 * 3
Baja Suma y resta + y - 10 - 3 + 1

4.4 Los paréntesis cambian el resultado

Los paréntesis fuerzan que una parte de la expresión se calcule antes que el resto. Esto permite cambiar el orden natural de prioridad.

console.log(2 + 3 * 4);
console.log((2 + 3) * 4);

La primera expresión multiplica antes de sumar. La segunda suma primero porque la suma está entre paréntesis.

4.5 Paréntesis para mejorar la legibilidad

Aunque una expresión funcione sin paréntesis, a veces conviene agregarlos para que la intención sea más evidente. En programación, el código se lee muchas más veces de las que se escribe.

const precio = 1000;
const impuesto = 21;
const total = precio + (precio * impuesto / 100);

console.log(total);

Los paréntesis no son obligatorios en este caso, pero ayudan a ver que primero se calcula el impuesto y luego se suma al precio.

4.6 Multiplicación y división tienen la misma prioridad

Cuando dos operadores tienen la misma prioridad, JavaScript evalúa la expresión según la asociatividad del operador. Para multiplicación y división, se evalúa de izquierda a derecha.

console.log(24 / 3 * 2);
console.log(24 / (3 * 2));

Las dos expresiones contienen los mismos números y operadores relacionados, pero los paréntesis cambian el agrupamiento y por eso cambia el resultado.

4.7 Suma y resta también tienen la misma prioridad

La suma y la resta tienen la misma prioridad. Se evalúan de izquierda a derecha, salvo que usemos paréntesis para indicar otro agrupamiento.

console.log(20 - 5 + 2);
console.log(20 - (5 + 2));

En la segunda expresión, el paréntesis hace que primero se sume 5 + 2 y luego se reste ese resultado a 20.

4.8 Potencias en JavaScript

JavaScript usa el operador ** para calcular potencias. Este operador tiene mayor prioridad que multiplicación, división, suma y resta.

console.log(2 + 3 ** 2);
console.log((2 + 3) ** 2);

La primera expresión calcula primero la potencia 3 ** 2. La segunda eleva al cuadrado el resultado de 2 + 3.

4.9 Cuidado con el signo negativo y las potencias

Cuando combinamos números negativos y potencias, los paréntesis son especialmente importantes. No es lo mismo elevar un número negativo que negar el resultado de una potencia.

console.log(-(3 ** 2));
console.log((-3) ** 2);

En el primer caso, se calcula 3 ** 2 y luego se aplica el signo negativo. En el segundo, el número completo -3 se eleva al cuadrado.

4.10 Expresiones con variables

Las reglas de prioridad no cambian cuando usamos variables. El lenguaje reemplaza mentalmente cada variable por su valor y evalúa la expresión según los operadores.

const a = 10;
const b = 5;
const c = 2;

console.log(a + b * c);
console.log((a + b) * c);

Los nombres de variables ayudan a expresar significado, pero no modifican las reglas matemáticas de evaluación.

4.11 Un caso típico: promedio correcto e incorrecto

Para calcular el promedio de tres valores, primero debemos sumar los valores y luego dividir por la cantidad. Si omitimos los paréntesis, la división se realiza antes que parte de la suma.

const nota1 = 8;
const nota2 = 7;
const nota3 = 10;

const promedioIncorrecto = nota1 + nota2 + nota3 / 3;
const promedioCorrecto = (nota1 + nota2 + nota3) / 3;

console.log(promedioIncorrecto);
console.log(promedioCorrecto);

Este ejemplo muestra por qué los paréntesis no son un detalle estético: pueden cambiar completamente el resultado de un programa.

4.12 Un caso típico: descuento sobre subtotal

Supongamos que queremos calcular el total de una compra y aplicar un descuento sobre el subtotal. Primero se calcula el subtotal y luego se descuenta el porcentaje correspondiente.

const precio = 1500;
const cantidad = 3;
const descuento = 10;

const subtotal = precio * cantidad;
const total = subtotal - (subtotal * descuento / 100);

console.log(subtotal);
console.log(total);

Los paréntesis hacen visible que el porcentaje se calcula antes de restarlo del subtotal.

4.13 Expresiones booleanas y paréntesis

La prioridad también existe en expresiones lógicas. En JavaScript, el operador && tiene mayor prioridad que ||. Aun así, los paréntesis suelen mejorar la claridad.

const edad = 20;
const tienePermiso = false;
const esAdministrador = true;

const puedeEntrar = (edad >= 18 && tienePermiso) || esAdministrador;

console.log(puedeEntrar);

El uso de paréntesis permite distinguir qué condiciones forman parte del mismo grupo lógico.

4.14 Recomendaciones prácticas

  • Usa paréntesis cuando una expresión pueda interpretarse de más de una forma.
  • No dependas de que quien lea el código recuerde toda la tabla de precedencia.
  • Divide cálculos largos en variables intermedias con nombres claros.
  • Prueba expresiones importantes con valores simples antes de usarlas en un programa grande.
  • Evita escribir fórmulas demasiado extensas en una sola línea.
const base = 12;
const altura = 8;
const area = base * altura;
const mitadDelArea = area / 2;

console.log(mitadDelArea);

Separar el cálculo en pasos facilita la lectura y reduce errores.

4.15 Qué debes recordar de este tema

  • Las expresiones no siempre se resuelven de izquierda a derecha.
  • Los paréntesis tienen la prioridad más alta y fuerzan un orden de cálculo.
  • Multiplicación y división se evalúan antes que suma y resta.
  • Cuando operadores tienen la misma prioridad, suele aplicarse la evaluación de izquierda a derecha.
  • Los paréntesis también ayudan a que el código sea más legible.
  • Un promedio, un descuento o una condición lógica pueden dar mal resultado si se agrupan mal las operaciones.

4.16 Conclusión

La prioridad de operadores define cómo se resuelve una expresión. Comprenderla permite evitar errores silenciosos, especialmente cuando combinamos varias operaciones en una misma línea.

En el próximo tema estudiaremos potencias y raíces con más detalle, y veremos cómo expresarlas en JavaScript.