
Resumen: en este tutorial, aprenderás sobre el operador de resto o residuo de JavaScript (%) para obtener el resto de un número dividido por otro número.
Introducción al operador de resto de JavaScript
JavaScript usa el %
para representar el operador resto o residuo. El operador de resto devuelve el resto que queda cuando un valor se divide por otro valor.
Esta es la sintaxis del operador de residuo:
dividendo % divisor
A continuación se muestra la ecuación para el residuo:
dividendo = divisor * cociente + residuo
where |residuo| < |divisor|
En esta ecuación, el dividendo
, el divisor
, el cociente
y el residuo
todos son números enteros. El signo del residuo
es el mismo que el signo del dividendo
.
El signo del residuo
es el mismo que el signo del dividendo
.
Ejemplos del uso de operadores de residuo en JavaScript
Veamos algunos ejemplos del uso del operador residuo
en JavaScript.
1) Uso del operador residuo con ejemplo de dividendo positivo
El siguiente ejemplo muestra cómo usar el operador resto
con un dividendo positivo
:
let remainder = 5 % -2;
console.log(remainder); // 1
remainder = 5 % 2;
console.log(remainder); // 1
2) Uso del operador residuo con ejemplo de dividendo negativo
El siguiente ejemplo utiliza el operador residuo
con un dividendo negativo
:
let remainder = -5 % 3;
console.log(remainder); // -2
remainder = -5 % -3;
console.log(remainder); // -2
3) Usar los valores especiales del operador residuo
Si un dividendo es un infinito
y un divisor
es un número finito
, el resto es NaN
. Por ejemplo:
let remainder = Infinity % 2;
console.log(remainder); // NaN
Si un dividendo
es un número finito
y un divisor
es cero, el resto es NaN
:
let remainder = 10 % 0;
console.log(remainder); // NaN
Si tanto el dividendo como el divisor
son infinitos, el resto es NaN
:
let remainder = Infinity % Infinity;
console.log(remainder); // NaN
Si un dividendo
es un número finito
y el divisor
es un infinito
, el resto
es el dividendo
. Por ejemplo:
let remainder = 10 % Infinity;
console.log(remainder); // 10
Si el dividendo
es cero
y el divisor
no es cero
, el resto es cero
:
let remainder = 0 % 10;
console.log(remainder); // 0
Si el dividendo
o el divisor
no es un número, se convierte en un número utilizando la función Number()
y se aplican las reglas anteriores. Por ejemplo:
let remainder = '10' % 3;
console.log(remainder); // 1
Usar el operador residuo
para comprobar si un número es un número impar
Para comprobar si un número es un número impar, utiliza el operador de residuo (%)
como el siguiente ejemplo:
let num = 13;
let isOdd = num % 2;
En este ejemplo, si el num es un número impar, el resto es uno. Pero si el num es un número par, el resto es cero.
Más adelante, aprenderás a definir una función que devuelva verdadero si un número es impar o falso de otra manera como esta:
function isOdd(num) {
return num % 2;
}
O usando una función de flecha en ES6:
const isOdd = (num) => num % 2;
Operador de residuo vs modulo
En JavaScript, el operador de resto (%)
no es el operador de modulo.
Si has trabajado con Python, puedes encontrar que % representa el operador de módulo en este lenguaje. Sin embargo, no es el caso en JavaScript.
Para obtener un módulo en JavaScript, utiliza la siguiente expresión:
((dividendo % divisor) + divisor) % divisor
O envuélvelo en una función:
const mod = (dividendo, divisor) => ((dividendo % divisor) + divisor) % divisor;
Si el dividendo
y el divisor
tienen el mismo signo, los operadores de residuo
y módulo
devuelven el mismo resultado. De lo contrario, devuelven resultados diferentes.
Por ejemplo:
const mod = (dividend, divisor) => ((dividend % divisor) + divisor) % divisor;
// dividen and divisor have the same sign
console.log('remainder:', 5 % 3); // 2
console.log('modulo:', mod(5, 3)); // 2
// dividen and divisor have the different signs
console.log('remainder:', -5 % 3); // -2
console.log('modulo:', mod(-5, 3)); // 1
Resultado:
remainder: 2
modulo: 2
remainder: -2
modulo: 1
Resumen
Usa el operador de resto de JavaScript (%
) para obtener el resto o residuo de un valor dividido por otro valor.