在本教程中,您将了解 JavaScript 余数运算符 %
计算一个数除以另一个数的余数。
JavaScript 取余运算符介绍
JavaScript 使用 %
来表示余数运算符。当一个值除以另一个值时,余数运算符返回剩余的余数。
取余运算符的语法形式是 dividend % divisor
。下面显示了余数的等式:
被除数 = 除数 * 商 + 余数
余数 < 除数
在这个等式中被除数,除数、商、 和余数都是整数。被除数 的符号与余数的符号相同。
余数的符号与被除数的符号相同。
JavaScript 余数运算符示例
让我们举一些使用 JavaScript 取余运算符的例子。
余数运算符与正被除数
以下示例显示了如何将余数运算符与正被除数一起使用:
let remainder = 5 % -2;
console.log(remainder); // 1
remainder = 5 % 2;
console.log(remainder); // 1
余数运算符与负被除数
以下示例使用余数运算符与负被除数:
let remainder = -5 % 3;
console.log(remainder); // -2
remainder = -5 % -3;
console.log(remainder); // -2
取余运算符的特殊值
如果被除数是 Infinity
且除数是有限数,则余数是 NaN
。例如:
let remainder = Infinity % 2;
console.log(remainder); // NaN
如果被除数是有限数且除数为零,则余数是 NaN
:
let remainder = 10 % 0;
console.log(remainder); // NaN
如果被除数和除数都是 Infinity
,则余数是NaN
:
let remainder = Infinity % Infinity;
console.log(remainder); // NaN
如果被除数是有限数且除数是 Infinity
,则余数是被除数。例如:
let remainder = 10 % Infinity;
console.log(remainder); // 10
如果被除数为零且除数非零,则余数为零:
let remainder = 0 % 10;
console.log(remainder); // 0
如果被除数或除数不是数字,则使用 Number()
函数将其转换为数字并应用上述规则。例如:
let remainder = '10' % 3;
console.log(remainder); // 1
余数运算符检查数字是否为奇数
要检查数字是否为奇数,请使用余数运算符 %
,如下例所示:
let num = 13;
let isOdd = num % 2;
在这个例子中,如果 num
是奇数,则余数是一。但如果 num
是偶数,则余数为零。
稍后,您将学习如何定义一个函数,函数在数字为奇数返回 true
或其他情况时返回 false
,如下所示:
function isOdd(num) {
return num % 2;
}
或者在 ES6 使用箭头函数:
const isOdd = (num) => num % 2;
余数与模运算符
在 JavaScript 中,余数运算符 % 不是模运算符。
如果您一直在使用 Python,您可能会发现 %
在这种语言中代表模运算符。但是,在 JavaScript 中并非如此。
要在 JavaScript 中获取模数,您可以使用表达式 ((被除数 % 除数) + 除数) % 除数
。或者将其封装装在一个函数中:
const mod = (dividend, divisor) => ((dividend % divisor) + divisor) % divisor;
如果除法和除数的符号相同,则余数和模运算符返回相同的结果。否则,它们会返回不同的结果。
例如:
const mod = (dividend, divisor) => ((dividend % divisor) + divisor) % divisor;
// 被除数和除数符号相同
console.log('remainder:', 5 % 3); // 2
console.log('modulo:', mod(5, 3)); // 2
// 被除数和除数符号不同
console.log('remainder:', -5 % 3); // -2
console.log('modulo:', mod(-5, 3)); // 1
remainder: 2
modulo: 2
remainder: -2
modulo: 1
结论
- 使用 JavaScript 取余运算符
%
获取一个值除以另一个值的余数。