JavaScript 中的模数运算符(%)
Harshit Jindal
2023年10月12日
本教程讲解如何在 JavaScript 中使用模运算符%
。
JavaScript 中的余数运算符%
当一个数字除以另一个数字时,它将给出剩余的余数。该运算符与其他语言中的 modulo
运算符不同,因为它具有不同的用途。它们的结果仅对于正数被除数相同,但是如果我们有负被除数 a
并对其应用模运算符,则结果将完全不同。在 JavaScript 中使用余数运算符通过表达式 ( (a % n) + n) % n
获得的结果与在 a % n
中使用模运算符获得的结果相同。
在 JavaScript 中使用余数运算符%
的示例
被除数为正的余数运算情况
1 % -2 // 1
2 % 3 // 2
5.5 % 2 // 1.5
12 % 5 // 2
1 % 2 // 1
被除数为负的余数运算情况
-12 % 5 // -2
- 1 % 2 // -1
- 4 % 2 // -0
被除数为 NaN
的余数运算情况
NaN % 2 // NaN
被除数为无限的余数运算情况
Infinity % 2 // NaN
Infinity % 0 // NaN
Infinity % Infinity // NaN
应用
数字是奇数还是偶数
我们可以通过检查整数是否可以被 2
整除来检查它是否为偶数。我们可以使用模运算符的返回值。如果为 0
,则表示数字为偶数。
function isEven(n) {
return n % 2 === 0;
}
isEven(6); // true
isEven(3); // false
数字的小数部分
我们可以简单地通过计算 n % 1
来做到这一点。
function getFractionalPart(n) {
return n % 1;
}
getFractionalPart(2.5); // 0.5
将分钟转换为小时
当给定表示分钟数的数字 n
,并且我们想将其转换为小时和分钟时,我们可以使用模运算符。
const minutesToHoursAndMinutes = n =>
({hours: Math.floor(n / 60), minutes: n % 60});
minutesToHoursAndMinutes(123); // { hours: 2, minutes: 3 }
作者: Harshit Jindal
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