%在JavaScript中做了什么?
非常感谢它的定义及其作用。
答案 0 :(得分:29)
这是 modulo operator 。有关JavaScript算术运算符的详细信息,请参阅 documentation 或 the specification 。
%(模数)
模数运算符的用法如下:
var1%var2
模数运算符返回第二个模数的第一个操作数 操作数,即var1 modulo var2,在前面的语句中,where var1和var2是变量。模数函数是整数 将var1除以var2的余数。例如,12%5返回2 结果将与var1具有相同的符号;也就是说,-1%2返回-1。
答案 1 :(得分:15)
ES6更新:
正如在其他答案中所解释的那样,它在除数除以除数后返回余数,但是这不再是模运算符,这是remainder operator. 不同之处在于模运算符结果将采用符号除数,而不是红利。 引自MDN
当一个操作数除以第二个操作数时,余数运算符返回剩余的余数。 总是采取红利的标志,而不是除数。它使用内置的模数函数来生成结果,即
var1
除以var2
的整数余数 - 例如 -var1 modulo var2
。 There is a proposal to get an actual modulo operator in a future version of ECMAScript,区别在于模运算符结果将采用除数的符号,而不是被除数。
示例:强>
-10 % 3 // -1
10 % -3 // 1
答案 2 :(得分:11)
返回除法运算的余数。 5%2
返回1
答案 3 :(得分:7)
答案 4 :(得分:6)
模数运算符 它计算余数。
如果我们做23%10,
首先,我们将23除以10,等于2.3
然后拿.3 *(除数)10
= 3
答案 5 :(得分:4)
以防万一,如果有人正在寻找一个真正的模数函数(它总能得到除数的符号),你可以使用它:
function Modulo(num, denom)
{
if (num%denom >= 0)
{
return Math.abs(num%denom);
}
else
{
return num%denom + denom;
}
}
Math.abs是为了防止大小写-12%12→-0,它被认为等于0但显示为-0。
答案 6 :(得分:3)
模数(%)运算符返回余数。
如果任一值是字符串,则尝试将字符串转换为数字。
alert(5%3)
会提醒2
答案 7 :(得分:1)
%作为模运算符执行,返回除法余数。例如:
<script>
var x = 5;
var y = 2;
var z = x % y;
alert(z);
</script>
这会提醒1。
答案 8 :(得分:0)
请找到模数(%)运算符的功能用法。您有9个名称的数组,您需要在每行3个中列出它,才能使用模块化运算符。
listNames=["krishna","vishnu","john","ali","guru","guruvan","tryer","ben"]
var text = "<div class='carousel-inner'>";
text += '<div class="item active">';
for (var i in listNames) {
text += '<div class="div_block" >' + listNames[i] + '</div>';
if (i % 3 == 2) {
text += '</div><div class="item">';
}
}
text += "</div>";
$('#name-list').html(text);
答案 9 :(得分:0)
在JavaScript中,%
是remainder operator
(不是取模运算符)。
余数运算符%(使用Math.truc()
):
remainder = -5 % 3 = -2
如何计算?
quotient = Math.trunc(dividend / divisor) = Math.trunc(-5 / 3) = -1;
remainder = dividend - divisor * quotient = -5 - (3 * -1) = -2
取模函数(使用Math.floor()
):
modulo(-5,3) = 1
如何计算?
quotient = Math.floor(dividend / divisor) = Math.floor(-5 / 3) = -2;
remainder = dividend - divisor * quotient = -5 - (3 * -2) = 1
对于正数数字,余数运算符和取模均给出相同的结果。
5 % 3 = 2
modulo(5,3) = 2
在JavaScript中,没有用于执行模运算的内置函数,因此您需要使用上述Math.floor()自己编写。另外,甚至您也可以使用剩余运算符轻松编写,如下所示。
function modulo(n, m) {
return ((n % m) + m) % m;
}