myfreax

JavaScript 取余运算符

在本教程中,您将了解 JavaScript 余数运算符 % 计算一个数除以另一个数的余数。

JavaScript 取余运算符
JavaScript 取余运算符

在本教程中,您将了解 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 取余运算符 % 获取一个值除以另一个值的余数。

内容导航