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