余数运算符 ,返回第一个操作数除以第二个操作数时的余数 它有时也称为 模运算符 ,尽管 从技术上讲,模运算符是一个不同的概念 。
余数运算符的一个方便类比是购买东西:如果小部件花费 3 美元而您有 7 美元,那么您最多可以购买 2 个小部件。 然后你将剩下 1 美元。 余数运算符 a % b
如果您购买尽可能多的小部件,则返回剩余的东西 a
美元和小部件成本 b
美元。
7 % 3; // 1
用英语讲, a % b
通常被称为 a mod b 。余数运算符有几个巧妙的用途:
一个数字是奇数还是偶数?
一个整数 n
是 即使 它可以被 2 整除。余数运算符返回 0,如果 a
可以被 b
,换句话说,检查一个数是否为偶数等同于检查是否 n % 2 === 0
。
function isEven(n) {
return n % 2 === 0;
}
isEven(5); // false
isEven(7.6); // false
isEven(8); // true
相似地, n
是 奇数 当且仅当 n % 2 === 1
。
function isOdd(n) {
return n % 2 === 0;
}
isEven(5); // false
isEven(7.6); // false
isEven(8); // true
获取 小数部分
你有一个号码 2.5
并且您只想获得小数点后的数字部分 0.5
, 最简洁的方法是取数字 mod 1。
function getFractionalPart(n) {
return n % 1;
}
getFractionalPart(2.5); // 0.5
将分钟转换为小时
余数运算符对于您不想引入繁重的库的基本日期算术很方便。 例如如果给你一个数字 n
表示分钟数(可能超过 60 分钟)并且您想将其转换为小时和分钟,您可以执行以下操作:
const minutesToHoursAndMinutes = n => ({
hours: Math.floor(n / 60),
minutes: n % 60
});
minutesToHoursAndMinutes(59); // { hours: 0, minutes: 59 }
minutesToHoursAndMinutes(62); // { hours: 1, minutes: 2 }
minutesToHoursAndMinutes(123); // { hours: 2, minutes: 3 }
余数与模数
模数是一个相关的概念,但处理负数的方式不同。 例如 -21 % 5 === -1
,因为余数总是取左数的符号。 但是真正的模运算符总是返回一个正值,因此 21 modulo 5 等于 4。实际上,您不太可能对负值使用余数运算符,许多 JavaScript 开发人员并没有意识到其中的区别。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
请登录后查看评论内容