Operador de Módulo(%) em JavaScript
Este tutorial ensina como usar o operador de módulo %
em JavaScript.
Operador restante %
em JavaScript
Ele dá o resto que sobra quando um número (dividendo)
é dividido por outro número (divisor)
. Este operador não é o mesmo que o operador módulo
em outras línguas porque tem um propósito diferente. Seus resultados são os mesmos apenas para um dividendo positivo, mas se tivermos um dividendo negativo a
e um operador de módulo for aplicado sobre ele, os resultados serão completamente diferentes. O resultado obtido pela expressão ( (a % n) + n) % n
usando o operador resto em JavaScript é o mesmo que o resultado obtido usando o operador módulo em a % n
.
Exemplo de uso do operador restante %
em JavaScript
Módulo com Dividendo Positivo
1 % -2 // 1
2 % 3 // 2
5.5 % 2 // 1.5
12 % 5 // 2
1 % 2 // 1
Restante com Dividendo Negativo
-12 % 5 // -2
- 1 % 2 // -1
- 4 % 2 // -0
Restante com NaN
NaN % 2 // NaN
Restante com infinito
Infinity % 2 // NaN
Infinity % 0 // NaN
Infinity % Infinity // NaN
Formulários
É um número ímpar ou par?
Podemos verificar se um inteiro é par, verificando se ele é divisível por 2
. Podemos usar o valor de retorno do operador módulo. Se for 0
, significa que o número é par.
function isEven(n) {
return n % 2 === 0;
}
isEven(6); // true
isEven(3); // false
a parte fracionária de um número
Podemos fazer isso simplesmente calculando n % 1
.
function getFractionalPart(n) {
return n % 1;
}
getFractionalPart(2.5); // 0.5
Converter minutos em horas
Quando dado um número n
que representa o número de minutos e queremos convertê-lo em horas e minutos, podemos usar o operador de módulo.
const minutesToHoursAndMinutes = n =>
({hours: Math.floor(n / 60), minutes: n % 60});
minutesToHoursAndMinutes(123); // { hours: 2, minutes: 3 }
Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.
LinkedIn