Cuando trabajamos con JavaScript, uno de los recursos más utilizados en cualquier lenguaje de programación son los operadores. Se trata de símbolos que nos permiten realizar operaciones sobre uno o más valores, como números, aunque también pueden aplicarse a otros tipos de datos.

Para comprenderlos mejor, analizaremos los distintos tipos que se utilizan con frecuencia:

Tipo de operadorFunción principal
Aritméticos y unariosRealizan operaciones matemáticas o manipulan un único valor.
De asignaciónSirven para almacenar valores en variables.
De comparaciónComparan dos elementos para devolver un valor booleano.
BinariosOperan a bajo nivel usando bits.
Nullish coalescingDevuelve un valor si una variable es null o undefined.
Encadenamiento opcionalEjecuta una expresión solo si existe cierta propiedad en un objeto.
LógicosEvalúan condiciones booleanas compuestas.

Operadores aritméticos

Estos operadores permiten realizar cálculos básicos entre dos valores. Los más comunes son:

OperaciónSímboloFunción
Suma+Añade dos valores.
Resta-Sustrae un valor de otro.
Multiplicación*Multiplica dos valores.
División/Divide un valor entre otro.
Módulo%Devuelve el resto de la división.
Exponenciación**Eleva un número a la potencia de otro (equivale a Math.pow).

Aunque los más comunes son los cuatro primeros, el operador módulo y la exponenciación son muy útiles en situaciones específicas.

Ejemplo con módulo:

javascriptCopiarEditarconst numeros = [10, 20, 30, 40, 50, 60, 70, 80];

for (let i = 0; i < numeros.length; i++) {
  const mod = i % 2;
  console.log(numeros[i], numeros[mod]);
}

El índice mod alternará entre 0 y 1, haciendo que se impriman de manera cíclica los dos primeros elementos del arreglo.


Operadores de asignación

Los operadores de asignación nos permiten establecer el valor de una variable. El operador principal es =, pero también existen versiones combinadas que realizan una operación y asignación al mismo tiempo:

OperaciónForma abreviadaEquivalente a
Suma y asignacióna += ba = a + b
Resta y asignacióna -= ba = a - b
Multiplicación y asignacióna *= ba = a * b
División y asignacióna /= ba = a / b
Módulo y asignacióna %= ba = a % b
Potencia y asignacióna **= ba = a ** b

Estas formas resumidas son especialmente útiles cuando modificamos el valor de una variable en función de su valor anterior.


Operadores unarios

Los operadores unarios actúan sobre un solo valor. Son comunes en bucles y cálculos incrementales:

OperadorDescripción
a++Incrementa a después de usarlo (post-incremento).
a--Decrementa a después de usarlo (post-decremento).
++aIncrementa a antes de usarlo (pre-incremento).
--aDecrementa a antes de usarlo (pre-decremento).
-aInvierte el signo del valor de a.

Comparación entre pre y post incremento

javascriptCopiarEditarlet a = 0;

while (a < 5) {
  console.log(a, a++, a);
}

En este ejemplo, a++ incrementa el valor después de mostrarlo. Si se reemplaza por ++a, el incremento se realiza antes de mostrar el valor. El resultado es diferente según el orden de operación.

| a | a++ | a | | a | ++a | a |
|—|—–|—-| |—|—–|—-|
| 0 | 0 | 1 | vs | 0 | 1 | 1 |
| 1 | 1 | 2 | | 1 | 2 | 2 |

Este comportamiento solo es relevante cuando se usa el valor inmediatamente, ya que en líneas independientes no hay diferencia funcional notable.