JavaScript 余数运算符

摘要:在本教程中,您将学习 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); // 1Code language: JavaScript (javascript)

2) 使用负被除数的余数运算符示例

以下示例使用负被除数的余数运算符

let remainder = -5 % 3;
console.log(remainder); // -2

remainder = -5 % -3;
console.log(remainder); // -2Code language: JavaScript (javascript)

3) 使用余数运算符的特殊值

如果被除数是 Infinity 且除数是有限数,则余数为 NaN。例如

let remainder = Infinity % 2;
console.log(remainder); // NaNCode language: JavaScript (javascript)

如果被除数是有限数且除数为零,则余数为 NaN

let remainder = 10 % 0;
console.log(remainder); // NaNCode language: JavaScript (javascript)

如果被除数和除数都是 Infinity,则余数为 NaN

let remainder = Infinity % Infinity;
console.log(remainder); // NaNCode language: JavaScript (javascript)

如果被除数是有限数且除数是 Infinity,则余数为被除数。例如

let remainder = 10 % Infinity;
console.log(remainder); // 10Code language: JavaScript (javascript)

如果被除数为零且除数非零,则余数为零

let remainder = 0 % 10;
console.log(remainder); // 0Code language: JavaScript (javascript)

如果被除数或除数不是数字,则使用 Number() 函数将其转换为数字并应用上述规则。例如

let remainder = '10' % 3;
console.log(remainder); // 1Code 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: 1Code language: HTTP (http)

摘要

  • 使用 JavaScript 余数运算符 (%) 获取一个值除以另一个值的余数。
本教程对您有帮助吗?