En JavaScript, los operadores son símbolos especiales que permiten realizar operaciones sobre uno o más valores llamados operandos. Tras manipular o procesar datos, devuelven un valor que representa el resultado de la operación. Los hay de distintos tipos que permiten realizar cálculos matemáticos, asignar valores, compararlos o simplemente realizar evaluaciones lógicas.
Estos son los principales tipos de operadores:
- Operadores aritméticos
- Operadores de asignación
- Operadores de comparación
- Operadores lógicos
- Operadores bit a bit
- Otros operadores
Operadores aritméticos
Los operadores aritméticos son aquellos que se utilizan para realizar cálculos matemáticos, como puede ser una suma, una resta, una multiplicación, una división, etc. Por tanto, se usan sobre valores de tipo numérico.
| Operador | Nombre | Descripción |
|---|---|---|
+ | Adición | Suma dos operandos. |
- | Sustracción | Resta el segundo operando al primero. |
* | Multiplicación | Multiplica dos operandos. |
/ | División | Divide el primer operando por el segundo. |
% | Módulo | Devuelve el residuo de una división entera. |
** | Exponenciación | Eleva el primer operando a la potencia del segundo. |
++ | Incremento | Aumenta en 1 el valor de la variable. |
-- | Decremento | Disminuye en 1 el valor de la variable. |
Operadores de asignación
Los operadores de asignación son los que permiten asignar un valor a una variable. Además, existen operadores compuestos para asignar después de haber hecho una operación matemática, algo que es muy útil en bucles.
| Operador | Nombre | Descripción |
|---|---|---|
= | Asignación | Asigna un valor a una variable. |
+= | Suma y asigna | Suma el operando derecho al izquierdo. |
-= | Resta y asigna | Resta el operando derecho al izquierdo. |
*= | Multiplica y asigna | Multiplica el operando izquierdo por el derecho. |
/= | Divide y asigna | Divide el operando izquierdo entre el derecho. |
%= | Calcula el resto y asigna | Calcula el resto del izquierdo respecto al derecho. |
**= | Eleva y asigna | Eleva una variable al exponente de un valor. |
Operadores de comparación
Mediante los operadores de comparación es posible realizar comparaciones entre dos valores y obtener un resultado booleano: verdadero o falso. Estos operadores son fundamentales porque permiten evaluar expresiones.
| Operador | Nombre | Descripción |
|---|---|---|
== | Igualdad | Comprueba si dos valores son iguales, realizando conversión de tipo si es necesario. |
=== | Igualdad estricta | Comprueba si dos valores son iguales y del mismo tipo. |
!= | Desigualdad | Comprueba si dos valores son diferentes, realizando conversión de tipo si es necesario. |
!== | Desigualdad estricta | Comprueba si dos valores son diferentes o de distinto tipo. |
> | Mayor que | Comprueba si el operando izquierdo es mayor que el derecho. |
< | Menor que | Comprueba si el operando izquierdo es menor que el derecho. |
>= | Mayor o igual que | Comprueba si el operando izquierdo es mayor o igual que el derecho. |
<= | Menor o igual que | Comprueba si el operando izquierdo es menor o igual que el derecho. |
Operadores lógicos
Los operadores lógicos permiten combinar o modificar expresiones booleanas, que se evalúan como verdadero o falso. No obstante, gracias a las reglas de conversión implícita se pueden aplicar sobre cualquier tipo de dato.
| Operador | Nombre | Descripción |
|---|---|---|
&& | AND | Devuelve verdadero si ambos operandos son truthy. |
|| | OR | Devuelve verdadero si uno de los dos operandos es truthy. |
! | NOT | Niega el valor (devuelve el valor opuesto). |
Operadores bit a bit
Los operadores bit a bit (bitwise) permiten trabajar de forma directa con la representación binaria de los números enteros. En vez de operar sobre valores numéricos, evalúan y manipulan cada bit de sus operandos.
| Operador | Nombre | Descripción |
|---|---|---|
& | AND bit a bit | Compara cada bit de los operandos y devuelve 1 si ambos son 1. |
| | OR bit a bit | Compara cada bit de los operandos y devuelve 1 si uno de los dos es 1. |
^ | XOR bit a bit | Devuelve 1 si los bits son distintos, y 0 si son iguales. |
~ | NOT bit a bit | Operador unario: invierte cada bit del operando (complemento a uno). |
<< | Desplazamiento a la izquierda | Desplaza los bits del operando izquierdo a la izquierda tantas posiciones como indique el operando derecho. Los espacios vacíos se rellenan con ceros. Equivale a multiplicar por potencias de 2. |
>> | Desplazamiento a la derecha con signo | Desplaza los bits del operando izquierdo a la derecha. Los bits de la izquierda se rellenan con el bit de signo (se conserva el signo del número). |
>>> | Desplazamiento a la derecha con ceros | Similar a >>, pero siempre rellena con ceros por la izquierda, sin conservar el signo. |
Otros operadores
JavaScript también ofrece un conjunto de operadores especiales que no encajan directamente en las categorías anteriores. Estos permiten realizar tareas como evaluar condiciones, inspeccionar tipos de datos o manipular objetos.
Operadores especiales:
| Operador | Nombre | Descripción |
|---|---|---|
? : | Operador condicional (ternario) | Evalúa una condición: si es verdadera devuelve el valor de la primera expresión. En caso contrario devuelve el de la segunda. |
typeof | Operador typeof | Devuelve el tipo de dato del operando en forma de cadena de texto. |
?? | Operador de coalescencia nula | Devuelve el operando derecho solo si el izquierdo es null o undefined. En caso contrario devuelve el izquierdo. |
delete | Operador delete | Elimina una propiedad de un objeto. |
, | Operador coma | Evalúa múltiples expresiones de izquierda a derecha y devuelve el valor de la última. |
() | Agrupación de expresiones | Permite alterar la precedencia de las operaciones, forzando el orden de evaluación. |
Operadores avanzados:
| Operador | Nombre | Descripción |
|---|---|---|
yield | Operador yield | Pausa y reanuda la ejecución dentro de una función generadora. |
... | Operador de propagación (spread) | Expande un iterable (como un array o una cadena de texto) en sus elementos individuales. |