JS: Operadores aritméticos

Los operadores aritméticos son símbolos especiales que realizan cálculos matemáticos sobre uno o más valores (operandos). La mayoría de este tipo de operadores son binarios, ya que necesitan un mínimo de dos operandos para funcionar. Aunque también hay algunos que son unarios.

JavaScript admite la mayoría de operaciones aritméticas necesarias, como puede ser la suma (+), la resta (-), la multiplicación (*), la división (/), etc. Además, algunos permiten realizar otras operaciones. Por ejemplo, el operador de la suma (+) también se utiliza para concatenar cadenas de texto. En casos como este, el resultado depende exclusivamente del tipo de dato.

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.

Adición

El operador de adición permite sumar dos operandos, siempre y cuando sus valores sean de tipo numérico. El signo de la suma es +.

Por ejemplo:

let x = 3;
let y = 5;
let res = x + y; // 8

Pero si uno de los dos operandos es una cadena de texto (tipo string), en lugar de una suma aritmética se producirá una concatenación.

let x = '3';
let y = 5;
let res = x + y; // 35

El motor de JavaScript sigue estas reglas: si los dos operandos son de tipo numérico, realizará la suma aritmética. Pero si uno de los dos es una cadena de texto, convierte el otro en otra cadena de texto para concatenarlos. Finalmente, si ambos son cadenas de texto, los concatena directamente.

Sustracción

La sustracción es el cálculo en el que se resta el segundo operando al primero. Se usa el signo designado para la resta: - (menos).

let x = 3;
let y = 5;
let res = x - y; // -2

En el ejemplo anterior, los dos operandos son números. Pero, ¿qué ocurre si no lo son? Si uno o ambos son cadenas de texto que contienen números, se convierten a números y se realiza la resta. En cambio, si el contenido de una de las dos cadenas de texto no es numérico, el resultado será «NaN» (Not a Number).

3 - 5;     // -2
'3' - 5;   // -2
'3' - '5'; // -2
'3ee' - 5; // NaN
NaN - 5;   // NaN

Multiplicación

El operador de la multiplicación permite multiplicar dos números (operandos). El símbolo de la multiplicación es el asterisco (*). Si los dos operandos son positivos o negativos, el signo del resultado será positivo. En cambio, si uno de los dos es negativo, obtendremos un resultado de signo negativo.

let x = 3;
let y = 5;
let res = x * y; // 15

Si los operandos (uno o ambos) es una cadena de texto con números, el motor de JavaScript los convertirá al tipo numérico para poder realizar la operación. Y si alguno es una cadena de texto sin números, el resultado será «NaN».

3 * 5;     // 15
'3' * 5;   // 15
'3' * '5'; // 15
'3ee' * 5; // NaN
NaN * 5;   // NaN

División

El operador de la división divide el operando de la izquierda (dividendo) con el de la derecha (divisor) y devuelve el cociente. El símbolo es la barra inclinada (/). Si los dos operandos son positivos o negativos, el resultado tendrá signo positivo. Pero si uno de los dos es negativo, el resultado tendrá signo negativo.

let x = 3;
let y = 5;
let res = x / y; // 0.6

Si al menos uno de los dos operandos es una cadena de texto que contiene números, JavaScript los convierte al tipo numérico para operar con ellos. En cambio, si alguno es una cadena de texto sin números, el resultado será «NaN».

3 / 5;     // 0.6
'3' / 5;   // 0.6
'3' / '5'; // 0.6
'3ee' / 5; // NaN
NaN / 5;   // NaN

Módulo

El operador del módulo devuelve el residuo de una división entera cuando se divide el primer operando entre el segundo. Se utiliza el símbolo del porcentaje (%). En esta operación, el resultado tiene el signo del dividendo.

let x = 5;
let y = 2;
let res = x % y; // 1

Al igual que ocurre en operadores anteriores: cuando uno o ambos operandos son una cadena de texto, mientras contengan números, JavaScript los convertirá al tipo numérico para poder realizar la operación sin problemas.

5 % 2;     // 1
'5' % 2;   // 1
'5' % '2'; // 1
'5ee' % 2; // NaN
NaN % 2;   // NaN

Exponenciación

El operador de exponenciación eleva el primer operando a la potencia del segundo. Este operador fue introducido en la versión ECMAScript 7 (ES7 o ES2016) para poder expresar potencias de una forma más precisa.

let x = 5;
let y = 3;
let res = x ** y; // 125

Si los operandos son una cadena de texto se convertirán al tipo numérico, siempre y cuando contengan números. De esta forma, JavaScript podrá hacer la operación. Pero si contienen algún otro carácter, el resultado será «NaN».

5 ** 3;     // 125
'5' ** 3;   // 125
'5' ** '3'; // 125
'5ee' ** 3; // NaN
NaN ** 3;   // NaN

Incremento

El operador que permite incrementar el valor en 1 unidad es el doble signo de la suma: ++. Se trata de un operador unario, ya que solo necesita un operando para aumentar su valor. El operando debe ser una variable.

let x = 5;
let res = ++x; // 6

En este caso, si en vez de ser un número es una cadena de texto que contiene un número, la operación matemática seguirá funcionando. Pero si la cadena de texto no contiene un número, devolverá «NaN» como resultado.

Decremento

Para disminuir o decrementar el valor en 1 unidad se usa el doble signo de la resta: --. Al igual que ocurre en el caso anterior, también se trata e un operador unario. El operando debe ser una variable.

let x = 5;
let res = --x; // 4

JavaScript haría la conversión automática de una cadena de texto al tipo numérico, mientras contenga números. En caso contrario, devolverá «NaN», de la misma forma que sucede con los operadores ya mencionados.

← Artículo anterior
Artículo siguiente →