JavaScript 取模运算符 (%) 的不同用例是什么?


在本教程中,我们将了解取模运算符 (%) 的不同用例。% 运算符也称为模运算符。此运算符返回一个数除以第二个数时的余数。它采用被除数的符号。

什么是余数?

从除法公式被除数 / 除数 = 商中可以看出。当被除数不能被除数完全整除时,总是存在余数。因此,如果我们的商是整数,那么我们的余数将始终为零。

例如

10 / 2= 5 here no remainder is there as 10 is completely divisible by 5.
6 / 4 = 1 here reminder is 2 as 6 is not completely divisible by 4.

因此,我们了解了余数,现在还要记住,余数是取模运算符返回的内容,它适用于被除数 % 除数之类的运算方法。

示例 1

在下面的示例中,我们找到不同用例的余数。

<!DOCTYPE html> <html> <head> <title>Remainder Operator (%) Use cases</title> </head> <body> <div id = "output"> </div> <script> var outDiv = document.getElementById("output") var remainder; //when dividend >= divisor remainder = 10 % 4; outDiv.innerHTML += remainder + "<br>" // 2 remainder = -10 % 4 outDiv.innerHTML += remainder + "<br>" // 2 // -2 remainder = 10 % -4 outDiv.innerHTML += remainder + "<br>" // 2 remainder = -10 % -4 outDiv.innerHTML += remainder + "<br>"// -2 //when dividend <= divisor remainder = 4 % 10 outDiv.innerHTML += remainder + "<br>" remainder = -4 % 10 outDiv.innerHTML += remainder + "<br>" remainder = 4 % -10 outDiv.innerHTML += remainder + "<br>" // 4 remainder = -4 % -10 outDiv.innerHTML += remainder + "<br>" // -4 //remainder when NaN (Not a Number) is dividend remainder = NaN % -2 outDiv.innerHTML += remainder + "<br>" // NaN //so, when NaN is divided by and value then output will always be NaN. //remainder when infinity is dividend remainder = Infinity % 4 outDiv.innerHTML += remainder + "<br>" // NaN remainder = Infinity % 0 outDiv.innerHTML += remainder + "<br>" // NaN remainder = Infinity % Infinity outDiv.innerHTML += remainder + "<br>"// NaN // when float value is divided remainder = 4.5 % 3 outDiv.innerHTML += remainder + "<br>" // 1.5 remainder = -4.5 % 3 outDiv.innerHTML += remainder + "<br>"// -1.5 remainder = 3 % -4.5 outDiv.innerHTML += remainder + "<br>" // 3 </script> </body> </html>

示例 2

检查奇数和偶数

我们使用取模运算符来检查输入的数字是奇数还是偶数。我们找到数字除以 2 时的余数。如果余数为 0,则该数字为偶数;如果余数为 1,则该数字为奇数。

<!DOCTYPE html> <html> <body> <h1>JavaScript reminder operator:</h1> <input type="number" id="val" placeholder="Enter a number" /> <input type="button" value="Check" onclick="checkOddEven()" style="color: blue"/> <h4 id="writeHere"></h4> <script> function checkOddEven(){ var val=document.getElementById("val").value if(val%2===0) document.getElementById('writeHere').innerHTML= val + " is even" else document.getElementById('writeHere').innerHTML=val + " is odd" } </script> </body> </html>

余数和模数有什么区别?

有时你们很多人对模运算符和余数运算符感到困惑。让我们澄清一下。

在 Python、C++ 等一些语言中,% 代表模运算。例如,我们使用它来避免溢出或保持在数据类型的范围内。但在 JavaScript 中,% 本身并不意味着模运算符。在某些情况下,例如当除数和被除数符号相同时,模运算可以返回与余数相同的值。

示例

in case remainder 7%4 = 3
In modulo 7%4 = 3

您可以看到两者都给出了相同的结果,让我们使用负号试试

In case remainder -7%4= -3
In modulo -7%4 = 1

通过上面的例子,您可以观察到,如果符号改变,模运算将给出与余数不同的结果。

在 JavaScript 中,我们使用下面提到的公式计算模:

((dividend % divisor) + divisor) % divisor

更新于:2022年8月16日

358 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告