Operadores aritméticos en JavaScript: Guía completa!!

Los operadores aritméticos en JavaScript son fundamentales para realizar cálculos en tu código. ¿Qué son y cuáles son sus características? En este artículo, aprenderás para qué sirven y cómo se utilizan con ejemplos prácticos, explorando sus funciones esenciales para manipular números y variables en tus proyectos.

operadores aritmeticos javascript ejemplos

1. ¿Qué son los operadores aritméticos en JavaScript?

Los operadores aritméticos son herramientas esenciales para realizar cálculos matemáticos dentro de tu código JavaScript. Estos operadores te permiten sumar, restar, multiplicar, dividir y realizar otras operaciones numéricas.

Descubre: ¿Para que sirve JavaScript?

Los mas comunes son:

Operador Descripción Ejemplo
+ Suma let resultado = 5 + 3; // resultado será 8
Resta let diferencia = 10 - 4; // diferencia será 6
* Multiplicación let producto = 2 * 6; // producto será 12
/ División let cociente = 15 / 3; // cociente será 5
% Módulo (resto de una división) let resto = 11 % 4; // resto será 3
++ Incremento (aumenta en 1) let numero = 5; numero++; // numero ahora es 6
Decremento (disminuye en 1) let numero = 5; numero--; // numero ahora es 4

En el siguiente punto iremos ampliando sobre cada uno de ellos.

2. Tipos de operadores aritméticos en JavaScript.

  1. Suma (+):
  2. Resta (-):
  3. Multiplicación (*):
  4. División (/):
  5. Módulo (%):
  6. Exponenciación (**):

2.1. Suma (+):

El operador de suma (+) en JavaScript es uno de los más versátiles y utilizados. Si bien su función principal es sumar números, también se comporta de manera diferente cuando se aplica a cadenas de texto.

DATO! Este operador suma números y strings, los cuales son algunos de los tipos de datos que existen en JS.

2.1.1. Ejemplo de diferentes usos con el operador suma:

A- Sumando Números:

Cuando ambos operandos (operandos son los valores, ejemplo en 5 + 7;, 5 y 7 son operandos) son números, el operador + realiza la operación de suma estándar.

let a = 10;
let b = 5;
let resultado = a + b;

console.log(resultado); // 15Lenguaje del código: JavaScript (javascript)

En este ejemplo, el operador + suma los valores de a y b, resultando en 15.

B- Concatenando Cadenas:

Cuando se utiliza el operador de suma con cadenas de texto (strings), une las cadenas en una sola, en lugar de realizar una suma aritmética.

let saludo = "Hola";
let nombre = "Manuel";
let mensaje = saludo + " " + nombre;

console.log(mensaje); // "Hola Manuel"Lenguaje del código: JavaScript (javascript)

Aquí, el operador + une las cadenas "Hola" y "Manuel" con un espacio en medio, resultando en "Hola Manuel".

C- Suma de Números y Cadenas de Texto

Cuando combinas un número y una cadena de texto usando el operador +, JavaScript convierte el número en una cadena y luego concatena los valores.

let numero = 10;
let texto = "20";
let resultado = numero + texto;

console.log(resultado); // "1020"Lenguaje del código: JavaScript (javascript)

En este caso, el número 10 se convierte en la cadena "10", y luego se concatena con la cadena "20", resultando en "1020".

D- Comportamiento con Tipos de Datos Diferentes

Es importante tener en cuenta que el operador + se comporta de manera diferente dependiendo de los tipos de datos involucrados.

  • Si ambos operandos son números, se suman.
  • Si uno de los operandos es una cadena, los valores se concatenan (unen uno al lado del otro).
let numero = 5;
let texto = "5";
let resultado1 = numero + 5; // Suma de números
let resultado2 = numero + texto; // Concatenación de cadena

console.log(resultado1); // 10
console.log(resultado2); // "55"Lenguaje del código: JavaScript (javascript)
E- Precedencia y Uso con Otros Operadores

El operador de suma sigue las reglas de precedencia en JavaScript. Puedes usar paréntesis para asegurar el orden de las operaciones cuando combines la suma con otros operadores.

let resultado = 10 + 5 * 2; // Multiplicación tiene mayor precedencia
console.log(resultado); // Resultado es 20

let resultado2 = (10 + 5) * 2; // Uso de paréntesis para cambiar precedencia
console.log(resultado2); // Resultado es 30Lenguaje del código: JavaScript (javascript)

2.1.2. Usos Comunes en la práctica del operador de suma:

  • Creando mensajes dinámicos:
let producto = "Manzana";
let precio = 2.5;
let mensaje = "El precio de la " + producto + " es $" + precio;Lenguaje del código: JavaScript (javascript)
  • Construyendo URLs:
let base_url = "https://www.ejemplo.com";
let pagina = "productos";
let url_completa = base_url + "/" + pagina;Lenguaje del código: JavaScript (javascript)
  • Formateando fechas y horas:
let dia = 15;
let mes = "abril";
let año = 2023;
let fecha = dia + " de " + mes + " de " + año;Lenguaje del código: JavaScript (javascript)

2.1.3. Consideraciones adicionales del operador de suma:

  • Precedencia de Operadores: Al igual que en las matemáticas, el orden en que se realizan las operaciones es importante (algunos se avalúan primeros que otros). Los paréntesis se utilizan para agrupar expresiones y controlar el orden de evaluación.
  • Conversiones de Tipo: JavaScript realizará conversiones de tipo implícitas cuando sea necesario, como convertir un número a una cadena o viceversa.

RECUERDA: El operador de suma + en JavaScript es una herramienta poderosa que te permite realizar tanto operaciones matemáticas como manipular cadenas de texto. Comprender su comportamiento es fundamental para escribir código JavaScript efectivo y legible.

2.2. Resta (-):

El operador de resta (-) en JavaScript se utiliza para realizar la sustracción de un valor de otro. A diferencia del operador de suma, el operador de resta no se utiliza para la concatenación de cadenas de texto; su propósito es exclusivamente aritmético.

2.2.1. Usos comunes en la práctica del operador de resta:

A- Resta de Números:

Cuando se utiliza el operador de resta con números, resta el segundo número del primero.

let a = 10;
let b = 4;
let resultado = a - b;

console.log(resultado); // 6Lenguaje del código: JavaScript (javascript)

En este ejemplo, el operador - resta el valor de b (4) del valor de a (10), resultando en 6.

B- Resta de Variables

El operador de resta puede ser utilizado con variables que contienen valores numéricos.

let x = 20;
let y = 8;
let diferencia = x - y;

console.log(diferencia); // 12Lenguaje del código: JavaScript (javascript)

Aquí, la resta de y de x produce 12.

C- Resta de Valores Negativos

El operador de resta también puede ser utilizado con números negativos, y sigue las reglas aritméticas estándar.

let a = 15;
let b = -5;
let resultado = a - b;

console.log(resultado); // 20Lenguaje del código: JavaScript (javascript)

En este caso, restar un número negativo es equivalente a sumar el valor absoluto de ese número.

D- Resta de Expresiones

El operador de resta puede ser utilizado con expresiones más complejas, incluyendo otros operadores.

let resultado = 20 - 5 * 2;

console.log(resultado); // 10Lenguaje del código: JavaScript (javascript)

Aquí, primero se realiza la multiplicación (5 * 2 = 10) y luego se resta de 20, lo que da como resultado 10.

E- Resta con Tipos de Datos Diferentes

Si se intenta restar un número de una cadena de texto que representa un número, JavaScript intentará convertir la cadena a un número y luego realizar la resta.

let texto = "10";
let numero = 3;
let resultado = texto - numero;

console.log(resultado); // 7Lenguaje del código: JavaScript (javascript)

En este caso, la cadena "10" se convierte en el número 10, y se resta 3, resultando en 7.

Ejemplo con una cadena no numérica:

let texto = "Hola";
let numero = 3;
let resultado = texto - numero;

console.log(resultado); // NaN (Not a Number)Lenguaje del código: JavaScript (javascript)

Si la cadena no puede convertirse en un número, el resultado será NaN (Not a Number).

F- Operador de Resta con Otros Operadores

El operador de resta puede combinarse con otros operadores dentro de una expresión más grande.


let resultado = (20 - 5) * (10 - 2);

console.log(resultado); // 120Lenguaje del código: JavaScript (javascript)

Aquí, primero se realizan las restas dentro de los paréntesis, y luego se multiplican los resultados.

2.2.2. Consideraciones importantes en el uso del operador resta:

  • Tipo de Datos: El operador de resta generalmente trabaja con números. Si se intenta restar un valor de otro tipo de dato, JavaScript intentará convertirlo a un número.
  • NaN: Si una operación de resta no tiene sentido (por ejemplo, restar una cadena que no representa un número), el resultado será NaN (Not a Number).
  • Orden de Precedencia: Al igual que con otros operadores, la resta tiene un orden de precedencia específico. Los paréntesis se utilizan para controlar el orden de las operaciones.

RECUERDA: El operador de resta - es una herramienta fundamental en JavaScript para realizar cálculos matemáticos básicos. Comprender su funcionamiento te permitirá escribir código más eficiente y preciso.

2.3. Multiplicación (*):

El operador de multiplicación (*) en JavaScript se utiliza para multiplicar dos valores numéricos. Es uno de los operadores aritméticos más básicos y se aplica únicamente a números.

2.3.1. Usos comunes en la práctica del operador de multiplicación:

A. Multiplicación de Números:

Cuando se utiliza el operador de multiplicación con números, simplemente multiplica los valores.

let a = 5;
let b = 4;
let resultado = a * b;

console.log(resultado); // 20Lenguaje del código: JavaScript (javascript)

En este ejemplo, el operador * multiplica los valores de a (5) y b (4), resultando en 20.

B. Multiplicación de Variables:

Puedes usar el operador de multiplicación para multiplicar el valor de variables que contienen números.

Ejemplo:

let x = 7;
let y = 3;
let producto = x * y;

console.log(producto); // 21Lenguaje del código: JavaScript (javascript)

Aquí, la multiplicación de x (7) por y (3) produce 21.

C. Multiplicación con Números Decimales:

El operador de multiplicación también funciona con números decimales (flotantes).

Ejemplo:

let a = 2.5;
let b = 4.2;
let resultado = a * b;

console.log(resultado); // 10.5Lenguaje del código: JavaScript (javascript)

En este caso, 2.5 multiplicado por 4.2 da como resultado 10.5.

D. Multiplicación con Valores Negativos:

El operador de multiplicación sigue las reglas matemáticas estándar al trabajar con números negativos.

Ejemplo:

let a = -5;
let b = 6;
let resultado = a * b;

console.log(resultado); // -30Lenguaje del código: JavaScript (javascript)

Aquí, un número positivo multiplicado por un número negativo da un resultado negativo (-30).

Otro Ejemplo:

let a = -3;
let b = -4;
let resultado = a * b;

console.log(resultado); // 12Lenguaje del código: JavaScript (javascript)

Multiplicar dos números negativos da un resultado positivo (12).

E. Multiplicación de Expresiones:

El operador de multiplicación puede combinarse con otros operadores dentro de una expresión más compleja.

Ejemplo de Expresión Compleja:


let resultado = (5 + 3) * 2;

console.log(resultado); // 16Lenguaje del código: JavaScript (javascript)

En este ejemplo, primero se realiza la suma dentro del paréntesis (5 + 3 = 8), y luego se multiplica por 2, resultando en 16.

F. Multiplicación con Tipos de Datos Diferentes:

Si intentas multiplicar un número por una cadena de texto que representa un número, JavaScript intentará convertir la cadena a un número antes de realizar la multiplicación.

Ejemplo:

let texto = "10";
let numero = 5;
let resultado = texto * numero;

console.log(resultado); // 50Lenguaje del código: JavaScript (javascript)

En este caso, la cadena "10" se convierte en el número 10, y se multiplica por 5, resultando en 50.

Ejemplo con una cadena no numérica:

let texto = "Hola";
let numero = 3;
let resultado = texto * numero;

console.log(resultado); // NaN (Not a Number)Lenguaje del código: JavaScript (javascript)

Si la cadena no puede convertirse en un número, el resultado será NaN (Not a Number).

G. Multiplicación por Cero y Uno:

La multiplicación por 0 siempre da como resultado 0, y la multiplicación por 1 da como resultado el valor original.

Ejemplos:

let resultado1 = 10 * 0;
let resultado2 = 10 * 1;

console.log(resultado1); // 0
console.log(resultado2); // 10Lenguaje del código: JavaScript (javascript)

2.3.2. Consideraciones importantes de multiplicación:

  • Orden de Precedencia: La multiplicación tiene un orden de precedencia más alto que la suma y la resta. Esto significa que se realiza antes en una expresión, a menos que se utilicen paréntesis para cambiar el orden.
  • Tipo de Datos: El operador de multiplicación funciona principalmente con números. Si intentas multiplicar un valor de otro tipo de dato, JavaScript intentará convertirlo a un número.
  • NaN: Si una operación de multiplicación no tiene sentido (por ejemplo, multiplicar por NaN), el resultado será NaN.

RECUERDA: El operador de multiplicación * es una herramienta esencial en JavaScript para realizar cálculos matemáticos. Su uso es sencillo y directo, y es fundamental para una amplia variedad de aplicaciones.

2.4. División (/):

El operador de división (/) en JavaScript se utiliza para dividir un número por otro. Es otro de los operadores aritméticos básicos y se emplea exclusivamente con números.

2.4.1. Usos comunes en la práctica del operador de división:

A. División de Números:

Cuando se utiliza el operador de división con dos números, divide el primer número por el segundo.

Ejemplo:

let a = 20;
let b = 4;
let resultado = a / b;

console.log(resultado); // 5Lenguaje del código: JavaScript (javascript)

En este ejemplo, el operador / divide 20 por 4, resultando en 5.

B. División de Variables:

Puedes utilizar el operador de división con variables que contienen valores numéricos.

Ejemplo:

let x = 15;
let y = 3;
let cociente = x / y;

console.log(cociente); // 5Lenguaje del código: JavaScript (javascript)

Aquí, 15 dividido por 3 da como resultado 5.

C. División con Decimales:

El operador de división también funciona con números decimales (flotantes).

Ejemplo:

let a = 7.5;
let b = 2.5;
let resultado = a / b;

console.log(resultado); // 3Lenguaje del código: JavaScript (javascript)

En este caso, 7.5 dividido por 2.5 da como resultado 3.

D. División con Valores Negativos:

El operador de división sigue las reglas matemáticas estándar al trabajar con números negativos.

Ejemplo:

let a = -10;
let b = 2;
let resultado = a / b;

console.log(resultado); // -5Lenguaje del código: JavaScript (javascript)

Aquí, un número negativo dividido por un número positivo da un resultado negativo (-5).

Otro Ejemplo:

let a = -12;
let b = -4;
let resultado = a / b;

console.log(resultado); // 3Lenguaje del código: JavaScript (javascript)

Dividir dos números negativos da un resultado positivo (3).

E. División de Expresiones:

El operador de división puede combinarse con otros operadores dentro de una expresión más compleja.

Ejemplo de Expresión Compleja:

let resultado = (20 + 10) / 5;

console.log(resultado); // 6Lenguaje del código: JavaScript (javascript)

En este ejemplo, primero se realiza la suma dentro del paréntesis (20 + 10 = 30), y luego se divide por 5, resultando en 6.

F. División con Tipos de Datos Diferentes:

Si intentas dividir un número por una cadena de texto que representa un número, JavaScript intentará convertir la cadena a un número antes de realizar la división.

Ejemplo:

let texto = "12";
let numero = 4;
let resultado = texto / numero;

console.log(resultado); // 3Lenguaje del código: JavaScript (javascript)

En este caso, la cadena "12" se convierte en el número 12, y se divide por 4, resultando en 3.

Ejemplo con una cadena no numérica:

let texto = "Hola";
let numero = 2;
let resultado = texto / numero;

console.log(resultado); // NaN (Not a Number)Lenguaje del código: JavaScript (javascript)

Si la cadena no puede convertirse en un número, el resultado será NaN (Not a Number).

G. División por Cero:

Dividir cualquier número por 0 en JavaScript no produce un error, pero el resultado será Infinity o -Infinity dependiendo del signo del numerador.

Ejemplo:

let a = 10;
let resultado = a / 0;

console.log(resultado); // InfinityLenguaje del código: JavaScript (javascript)

Ejemplo con un número negativo:

let a = -10;
let resultado = a / 0;

console.log(resultado); // -InfinityLenguaje del código: JavaScript (javascript)

Sin embargo, si intentas dividir 0 por 0, el resultado será NaN.

Ejemplo:

let resultado = 0 / 0;

console.log(resultado); // NaN (Not a Number)Lenguaje del código: JavaScript (javascript)

2.4.2. Consideraciones importantes en divisiones:

  • Orden de Precedencia: La división tiene un orden de precedencia más alto que la suma y la resta, pero menor que la multiplicación. Esto significa que se realiza antes que la suma y la resta, pero después que la multiplicación, a menos que se utilicen paréntesis para cambiar el orden.
  • Tipo de Datos: El operador de división funciona principalmente con números. Si intentas dividir un valor de otro tipo de dato, JavaScript intentará convertirlo a un número.
  • NaN: Si intentas dividir por cero o si alguno de los operandos no es un número válido, el resultado será NaN (Not a Number).
  • Infinito: Si divides un número por cero, el resultado será Infinity.

RECUERDA: El operador de división / es esencial para realizar cálculos que involucren la partición de cantidades. Comprender su funcionamiento te permitirá resolver una amplia gama de problemas en tus programas JavaScript.

2.5. Módulo (%):

El operador de módulo (%) en JavaScript se utiliza para obtener el residuo de una división entre dos números. Es especialmente útil cuando necesitas determinar si un número es divisible por otro, o para realizar operaciones que dependen del residuo de una división.

2.5.1. Usos comunes en la práctica del operador de división:

A. Cálculo del Resto de una División:

El operador de módulo devuelve el residuo que queda después de dividir un número por otro.

Ejemplo de Módulo:

let a = 10;
let b = 3;
let resultado = a % b;

console.log(resultado); // 1Lenguaje del código: JavaScript (javascript)

El operador de módulo (%) devuelve el residuo de la división de a por b. Aquí está el desglose de por qué el resultado (residuo) es 1:

  1. División: Cuando divides 10 por 3, el resultado es un cociente de 3.
    • 10 dividido por 3 es igual a 3, pero con un residuo porque 3 * 3 = 9.
  2. Residuo: El residuo es lo que queda después de restar el producto del cociente (3) y el divisor (3) de 10.
    • 10 – 9 = 1
  3. Resultado del Módulo: El operador % devuelve ese residuo. En este caso, 1 es lo que sobra cuando divides 10 entre 3.

Por lo tanto, 10 % 3 devuelve 1 porque ese es el residuo de la división.

B. Determinación de Números Pares e Impares:

El operador de módulo es comúnmente utilizado para determinar si un número es par o impar. Si un número dividido por 2 tiene un residuo de 0, entonces es par; de lo contrario, es impar.

Ejemplo:

let numero = 7;

if (numero % 2 === 0) {
    console.log("El número es par.");
} else {
    console.log("El número es impar.");
}

// Salida: "El número es impar."Lenguaje del código: JavaScript (javascript)

. Aquí te explico por qué el resultado es «impar»:

  1. Operación del módulo:
    • La expresión numero % 2 calcula el residuo de la división de numero entre 2.
    • En este caso, 7 % 2 calcula el residuo de dividir 7 entre 2.
  2. Cálculo del residuo:
    • Cuando divides 7 por 2, obtienes un cociente de 3 (porque 2 * 3 = 6), pero no es una división exacta.
    • El residuo es 1 porque 7 - 6 = 1. Así, 7 % 2 devuelve 1.
  3. Condición en el if:
    • El condicional if verifica si el residuo (numero % 2) es igual a 0. Si lo fuera, significaría que el número es divisible por 2 sin resto, lo que indicaría que es par.
    • En este caso, como el residuo es 1 (y no 0), el if evalúa como false, por lo tanto, el código entra en el bloque else.
  4. Resultado:
    • Dado que 7 % 2 no es igual a 0, el código ejecuta el bloque else y muestra "El número es impar.".

En resumen, el número 7 no es divisible por 2 sin dejar un residuo, lo que lo convierte en un número impar, y por eso el código imprime «El número es impar.»

C. Uso en Ciclos:

El operador de módulo es útil en ciclos cuando quieres ejecutar una acción cada cierto número de iteraciones.

NOTA! Los ciclos en JavaScript son los siguientes:

Ejemplo:

for (let i = 1; i <= 10; i++) {
    if (i % 3 === 0) {
        console.log(i + " es divisible por 3.");
    }
}

// Salida:
// "3 es divisible por 3."
// "6 es divisible por 3."
// "9 es divisible por 3."Lenguaje del código: JavaScript (javascript)

Desglose del ejemplo:

  1. Bucle for:
    • El bucle for comienza con i = 1 y se ejecuta hasta que i llega a 10, incrementando i en 1 en cada iteración (i++).
  2. Operador de módulo (%):
    • En cada iteración, se evalúa la expresión i % 3 === 0.
    • Esto verifica si el residuo de la división de i entre 3 es 0.
    • Si i % 3 === 0 es verdadero, significa que i es divisible por 3 sin dejar residuo, y por lo tanto, es múltiplo de 3.
  3. Salida del código:
    • Iteración 1: i = 1, 1 % 3 da un residuo de 1 (no divisible por 3), no imprime nada.
    • Iteración 2: i = 2, 2 % 3 da un residuo de 2 (no divisible por 3), no imprime nada.
    • Iteración 3: i = 3, 3 % 3 da un residuo de 0 (es divisible por 3), imprime "3 es divisible por 3.".
    • Iteración 4: i = 4, 4 % 3 da un residuo de 1 (no divisible por 3), no imprime nada.
    • Iteración 5: i = 5, 5 % 3 da un residuo de 2 (no divisible por 3), no imprime nada.
    • Iteración 6: i = 6, 6 % 3 da un residuo de 0 (es divisible por 3), imprime "6 es divisible por 3.".
    • Iteración 7: i = 7, 7 % 3 da un residuo de 1 (no divisible por 3), no imprime nada.
    • Iteración 8: i = 8, 8 % 3 da un residuo de 2 (no divisible por 3), no imprime nada.
    • Iteración 9: i = 9, 9 % 3 da un residuo de 0 (es divisible por 3), imprime "9 es divisible por 3.".
    • Iteración 10: i = 10, 10 % 3 da un residuo de 1 (no divisible por 3), no imprime nada.
  4. Resultado final:
    • El código solo imprime los números que son divisibles por 3 dentro del rango de 1 a 10. Es por eso que la salida es:
    • "3 es divisible por 3."
    • "6 es divisible por 3."
    • "9 es divisible por 3."
    • Cada uno de estos números es un múltiplo de 3, por lo que cumplen la condición i % 3 === 0.
D. Módulo con Números Negativos:

El operador de módulo también funciona con números negativos, y el signo del resultado es el mismo que el del dividendo (el número antes del %).

Ejemplo:

let a = -10;
let b = 3;
let resultado = a % b;

console.log(resultado); // -1Lenguaje del código: JavaScript (javascript)

En este caso, -10 % 3 devuelve -1, ya que el residuo sigue el signo del dividendo.

E. Módulo con Decimales:

En JavaScript, el operador de módulo también puede ser utilizado con números decimales, aunque es menos común.

Ejemplo:

let a = 5.5;
let b = 2;
let resultado = a % b;

console.log(resultado); // 1.5Lenguaje del código: JavaScript (javascript)

Aquí, 5.5 % 2 devuelve 1.5, que es el residuo de dividir 5.5 entre 2.

2.5.2. Consideraciones importantes usando módulos:

  • Tipo de Datos: Al igual que otros operadores aritméticos, el operador de módulo trabaja principalmente con números.
  • NaN: Si alguno de los operandos no es un número, el resultado será NaN (Not a Number).
  • Signo del resultado: El signo del resultado del operador de módulo es el mismo que el signo del dividendo.

RECUERDA: El operador de módulo es una herramienta versátil en JavaScript que nos permite realizar cálculos más complejos y resolver problemas específicos. Su capacidad para obtener el resto de una división lo convierte en una herramienta invaluable para una variedad de tareas de programación.

2.6. Exponenciación (**):

El operador de exponenciación (**) en JavaScript se utiliza para elevar un número (la base) a la potencia de otro número (el exponente). Es una forma compacta y directa de realizar potencias en código.

2.6.1. Usos comunes en la práctica del operador de exponenciación:

A. Exponenciación Básica:

El operador de exponenciación toma dos operandos: la base y el exponente. Eleva la base a la potencia indicada por el exponente.

Ejemplo de Exponenciación Básica:

let base = 2;
let exponente = 3;
let resultado = base ** exponente;

console.log(resultado); // 8Lenguaje del código: JavaScript (javascript)

En este ejemplo, 2 ** 3 significa 2 elevado a la potencia de 3, lo que da como resultado 8.

B. Exponenciación con Números Negativos:

Puedes usar el operador de exponenciación con exponentes negativos. Un exponente negativo significa que estás tomando el recíproco de la base elevada al valor absoluto del exponente.

Ejemplo:

let base = 2;
let exponente = -2;
let resultado = base ** exponente;

console.log(resultado); // 0.25Lenguaje del código: JavaScript (javascript)

En este caso, 2 ** -2 es igual a 1 / (2 ** 2), lo que da como resultado 0.25.

C. Exponenciación con Decimales:

El operador de exponenciación también funciona con bases y exponentes decimales.

Ejemplo:

let base = 9;
let exponente = 0.5;
let resultado = base ** exponente;

console.log(resultado); // 3Lenguaje del código: JavaScript (javascript)

Aquí, 9 ** 0.5 es equivalente a la raíz cuadrada de 9, que es 3.

D. Exponenciación con Cero:

Cualquier número elevado a la potencia de 0 es igual a 1, según las reglas matemáticas estándar.

Ejemplo:

let base = 5;
let exponente = 0;
let resultado = base ** exponente;

console.log(resultado); // 1Lenguaje del código: JavaScript (javascript)

Nota: 0 ** 0 en JavaScript devuelve 1 porque se sigue el convenio matemático de que 0 elevado a la 0 es 1.

E. Exponenciación en Expresiones Complejas:

El operador de exponenciación puede ser parte de expresiones más complejas, combinándose con otros operadores aritméticos.

Ejemplo:

let resultado = 2 ** 3 + 4 * 2;

console.log(resultado); // 16 + 8 = 24Lenguaje del código: JavaScript (javascript)

En este ejemplo, 2 ** 3 se evalúa primero (debido a la precedencia de operadores), resultando en 8, y luego se realiza la multiplicación y la suma.

F. Orden de Evaluación:

El operador de exponenciación tiene una alta precedencia en JavaScript, lo que significa que se evalúa antes que otros operadores como la multiplicación (*) o la suma (+). Sin embargo, si hay paréntesis, estos se evalúan primero.

Ejemplo:

let resultado = 2 ** (3 + 1);

console.log(resultado); // 16Lenguaje del código: JavaScript (javascript)

En este caso, la operación dentro del paréntesis se evalúa primero, dando 4, y luego 2 se eleva a la potencia de 4, resultando en 16.

2.6.2. Consideraciones importantes usando la exponenciación:

  • Orden de precedencia: Tiene un orden de precedencia más alto que la multiplicación y la división.
  • Tipos de datos: Funciona principalmente con números.
  • NaN: Si alguno de los operandos no es un número válido, el resultado será NaN.
  • Infinito: Si la base es negativa y el exponente no es un número entero, el resultado será NaN.

RECUERDA: El operador de exponenciación es una herramienta poderosa y concisa para realizar cálculos que involucren potencias en JavaScript. Su uso simplifica la escritura de código y mejora la legibilidad.

3. Prioridad de los operadores aritméticos en JavaScript.

La prioridad de operadores en JavaScript determina el orden en el que se evalúan las operaciones en una expresión. Esto es fundamental para garantizar que los cálculos se realicen en el orden correcto y se obtenga el resultado esperado.

¿Por qué es importante la prioridad de operadores?

Imagina la siguiente expresión: 2 + 3 * 4. ¿Cuál operación se realiza primero, la suma o la multiplicación? La prioridad de operadores establece que la multiplicación se realiza antes que la suma, por lo que el resultado sería 14 (no 20).

3.1. Orden de evaluación (precedencia de operadores):

JavaScript evalúa los operadores en una expresión según un orden específico de precedencia. Los operadores con mayor precedencia se evalúan antes que aquellos con menor precedencia.

Lista de algunos operadores y su precedencia:

  1. Exponenciación (**):
    • Tiene una de las precedencias más altas y es evaluado primero en una expresión.
  2. Multiplicación (*), División (/), Módulo (%):
    • Tienen una precedencia alta, pero menor que la exponenciación.
  3. Suma (+), Resta (-):
    • Tienen precedencia más baja que la multiplicación y la división.
  4. Asignación (=):
    • Tiene una precedencia muy baja, lo que significa que la mayoría de las operaciones se realizan antes de asignar un valor a una variable.

Ejemplo de Precedencia de Operadores:

let resultado = 2 + 3 * 4 ** 2;

console.log(resultado); // 50Lenguaje del código: JavaScript (javascript)

Aquí, la operación se evalúa en el siguiente orden debido a la precedencia:

  1. Primero, se evalúa la exponenciación: 4 ** 2 que da 16.
  2. Luego, se realiza la multiplicación: 3 * 16 que da 48.
  3. Finalmente, se realiza la suma: 2 + 48, resultando en 50.

3.2. Asociatividad de operadores:

La asociatividad de un operador determina la dirección en la que se evalúan los operadores de igual precedencia en una expresión.

La mayoría de los operadores aritméticos en JavaScript son asociativos de izquierda a derecha, lo que significa que se evalúan de izquierda a derecha.

Ejemplo:

let resultado = 10 - 5 - 2;

console.log(resultado); // 3Lenguaje del código: JavaScript (javascript)

En este ejemplo:

  • Primero se evalúa 10 - 5, que da 5.
  • Luego, 5 - 2, resultando en 3.

3.2.1. Para los operadores de exponenciación (**):

La asociatividad es de derecha a izquierda.

Ejemplo:

let resultado = 2 ** 3 ** 2;

console.log(resultado); // 512Lenguaje del código: JavaScript (javascript)

Aquí:

  • Primero se evalúa 3 ** 2, que da 9.
  • Luego, 2 ** 9, que resulta en 512.

3.3. Uso de paréntesis para controlar el orden de las operaciones:

Puedes utilizar paréntesis para alterar el orden en que se realizan las operaciones. Los paréntesis tienen la precedencia más alta, por lo que cualquier expresión dentro de paréntesis se evalúa primero, sin importar la precedencia de los operadores fuera de ellos.

Ejemplo:

let resultado = (2 + 3) * 4 ** 2;

console.log(resultado); // 80Lenguaje del código: JavaScript (javascript)

En este caso:

  • Primero se evalúa la operación dentro del paréntesis: 2 + 3, que da 5.
  • Luego, se realiza la exponenciación: 4 ** 2, que da 16.
  • Finalmente, se multiplica: 5 * 16, resultando en 80.

El uso de paréntesis es esencial para garantizar que las operaciones se realicen en el orden que tú desees, especialmente en expresiones complejas.

Otro Ejemplo:

let resultado = (2 + 3) * (4 - 1) / 3;

console.log(resultado); // 5Lenguaje del código: JavaScript (javascript)

Aquí, gracias a los paréntesis:

  • 2 + 3 se evalúa primero, dando 5.
  • 4 - 1 se evalúa luego, dando 3.
  • Finalmente, se multiplica 5 * 3, resultando en 15, y se divide por 3, lo que da 5.

3.4. Resumen de las prioridades en los operadores:

  • Orden de Evaluación (Precedencia): Determina qué operadores se evalúan primero. La exponenciación tiene una precedencia más alta que la multiplicación, división, y suma.
  • Asociatividad de Operadores: Indica si la evaluación ocurre de izquierda a derecha o de derecha a izquierda en operadores con la misma precedencia. La mayoría son de izquierda a derecha, excepto la exponenciación.
  • Uso de Paréntesis: Controla y fuerza el orden de las operaciones en una expresión, permitiéndote priorizar ciertas operaciones sin importar la precedencia de los operadores.

Entender la precedencia y la asociatividad de los operadores, junto con el uso correcto de los paréntesis, es fundamental para escribir expresiones claras y correctas en JavaScript, especialmente en cálculos complejos.

4. Optimización de operaciones aritméticas en JavaScript

La optimización de operaciones aritméticas es crucial para mejorar la eficiencia y rendimiento de tu código, especialmente en contextos donde se realizan múltiples cálculos o cuando se manipulan grandes cantidades de datos.

A continuación, te explico dos técnicas clave para optimizar operaciones aritméticas en JavaScript:

  1. Evitar repeticiones mediante el uso de variables intermedias.
  2. La evaluación eficiente de expresiones.

4.1. Evitar Repeticiones: Uso de Variables Intermedias

Una técnica común para optimizar cálculos es evitar realizar las mismas operaciones aritméticas varias veces. Esto se logra almacenando resultados intermedios en variables JS.

Esto no solo hace que el código sea más eficiente al reducir el número de operaciones, sino que también lo hace más legible y fácil de mantener.

Ejemplo SIN optimización:

let x = 5;
let y = 10;
let resultado = (x * y) + (x * y) + (x * y);
console.log(resultado); // 150Lenguaje del código: JavaScript (javascript)

En este ejemplo, la expresión x * y se repite tres veces. Aunque el cálculo es simple, si x * y fuera una operación más compleja, realizarla tres veces sería ineficiente.

Ejemplo CON optimización:

let x = 5;
let y = 10;
let producto = x * y;
let resultado = producto + producto + producto;
console.log(resultado); // 150Lenguaje del código: JavaScript (javascript)

Aquí, calculamos x * y una sola vez y almacenamos el resultado en la variable producto. Luego, utilizamos producto para realizar el cálculo final. Esto reduce el número de operaciones aritméticas, lo que puede ser especialmente útil en cálculos más complejos o dentro de bucles.

4.2. Evaluación de expresiones: Minimizar operaciones costosas y repetitivas

Algunas operaciones aritméticas son más costosas en términos de tiempo de procesamiento, especialmente si se repiten dentro de bucles o funciones que se llaman frecuentemente. Minimizar estas operaciones o realizar evaluaciones tempranas de expresiones puede mejorar significativamente el rendimiento del código.

4.2.1. Operaciones costosas:

En general, operaciones como la división (/), módulo (%), y exponenciación (**) son más costosas en términos de tiempo de CPU que las operaciones de suma (+) y multiplicación (*). Por lo tanto, si es posible, debes evitar realizar estas operaciones repetidamente o dentro de bucles sin necesidad.

Ejemplo SIN optimización:

let total = 0;
for (let i = 0; i < 1000; i++) {
    total += Math.pow(i, 2) / 2;
}
console.log(total);Lenguaje del código: JavaScript (javascript)

En este ejemplo, Math.pow(i, 2) y la división / 2 se calculan en cada iteración del bucle, lo que puede ser ineficiente si el valor de i no cambia mucho o si el cálculo es más complejo.

Ejemplo CON optimización:

let total = 0;
let half = 0.5;
for (let i = 0; i < 1000; i++) {
    let cuadrado = i * i;
    total += cuadrado * half;
}
console.log(total);Lenguaje del código: JavaScript (javascript)

Aquí, hemos eliminado la llamada a Math.pow() y la división, reemplazándolas con una multiplicación por half (0.5). Esto reduce significativamente el tiempo de procesamiento, especialmente en bucles grandes.

4.2.2. Evaluación de expresiones:

Si tienes una expresión que se repite varias veces y su resultado no cambia, es más eficiente evaluarla una sola vez y reutilizar el resultado.

Ejemplo SIN optimización:

let x = 5;
let y = 10;
let resultado = Math.sqrt(x * y) + Math.sqrt(x * y);
console.log(resultado); // 10Lenguaje del código: JavaScript (javascript)

En este caso, Math.sqrt(x * y) se calcula dos veces, lo que es innecesario y menos eficiente.

Ejemplo CON optimización:

let x = 5;
let y = 10;
let raiz = Math.sqrt(x * y);
let resultado = raiz + raiz;
console.log(resultado); // 10Lenguaje del código: JavaScript (javascript)

Al calcular Math.sqrt(x * y) una sola vez y almacenar el resultado en la variable raiz, se evita la repetición innecesaria de una operación relativamente costosa como la raíz cuadrada.

4.3. Uso de funciones para evaluaciones comunes

En ocasiones, puedes encapsular cálculos repetidos en funciones de JavaScript para evitar errores y hacer que tu código sea más limpio y fácil de leer. Esto también te permite realizar optimizaciones dentro de la función sin afectar otras partes del código.

Ejemplo:

function calcularProducto(x, y) {
    return x * y;
}

let resultado1 = calcularProducto(5, 10) + calcularProducto(5, 10);
console.log(resultado1); // 100Lenguaje del código: JavaScript (javascript)

Aquí, la función calcularProducto() se usa para realizar el cálculo repetitivo, lo que hace que el código sea más modular y fácil de optimizar en el futuro.

4.4. Resumen de estas optimizaciones:

  1. Evitar Repeticiones:
    • Usa variables intermedias para almacenar resultados de operaciones aritméticas que se repiten.
    • Esto reduce el número de cálculos realizados y mejora el rendimiento del código.
  2. Minimizar Operaciones Costosas:
    • Evita realizar operaciones como división, módulo, o exponenciación repetidamente dentro de bucles o funciones.
    • Usa multiplicaciones o evaluaciones previas de expresiones cuando sea posible.
  3. Evaluación de Expresiones:
    • Si una expresión se repite pero su resultado no cambia, evalúala una vez y reutiliza el resultado.
  4. Uso de Funciones:
    • Encapsula cálculos repetitivos en funciones para mejorar la modularidad y facilitar la optimización.

Aplicar estas técnicas de optimización te permitirá escribir código más eficiente y rápido, especialmente en aplicaciones que requieren muchos cálculos o en entornos donde el rendimiento es crítico.

5. Preguntas frecuentes y resumen sobre operadores aritméticos en JS.

Los operadores aritméticos básicos en JavaScript incluyen + (suma), - (resta), * (multiplicación), / (división) y % (módulo). Estos permiten realizar cálculos matemáticos en variables y valores numéricos.

El operador + se usa para sumar dos números o concatenar cadenas de texto. Ejemplo: let resultado = 5 + 3; dará como resultado 8. Para concatenar: let saludo = "Hola" + " Mundo";.

El operador - se usa para restar un número de otro. Ejemplo: let resultado = 10 - 4; dará como resultado 6. También puede utilizarse para cambiar el signo de un número: let negativo = -resultado;.

El operador * multiplica dos valores. Ejemplo: let producto = 6 * 7; dará como resultado 42. Se usa comúnmente en cálculos matemáticos y operaciones dentro de bucles.

El operador / divide el primer número por el segundo. Ejemplo: let division = 20 / 5; dará como resultado 4. Si se divide entre 0, el resultado será Infinity o -Infinity.

El operador % devuelve el residuo de una división. Ejemplo: let residuo = 10 % 3; dará como resultado 1. Es útil para verificar números pares o impares con num % 2.

La precedencia es: (), * / %, + -. Ejemplo: 5 + 2 * 3 se evalúa como 5 + 6 y el resultado es 11. Se pueden usar paréntesis para modificar el orden.

Los paréntesis () permiten cambiar la precedencia. Ejemplo: (5 + 2) * 3 evalúa 7 * 3, dando 21. Se usan para mejorar la claridad y evitar errores en cálculos complejos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *