使用%模数了解此Javascript代码

时间:2012-04-18 10:14:10

标签: javascript

我目前正在学习Javascript。我看到以下代码让我感到困惑。

代码说明:
从第1行开始,函数isOdd取一个数字n并返回一个布尔值(true或false),说明该数字是否为奇数。

代码

var isOdd = function (n) {
      if (n % 2 === 0) {
        return false;
      } else {
        return true;
      }
    };

    var isEven = function(n) {
        if(n % 2 === 0) {
            return true;
        } else {
            return false;
        }
    };

我很困惑。
代码:

n % 2 === 0

我总是将以下内容作为%:

的描述
% Is the modulus operator. It returns the remainder of dividing number1 by number2.

这意味着函数isOdd中的if语句返回false是n和2之间的差值是0.但是它意味着n是否可被2整除(偶数)返回false。

我只是看不出它是怎么做的。

在我看来,如果我们取偶数30.将它应用于n%2。我们得到15,这是30除以2的余数.15不等于0,但30是偶数,并且这段代码会被视为奇怪。

有人可以解释一下吗?

3 个答案:

答案 0 :(得分:3)

有问题的一行:

  if (n % 2 === 0) {
    return false;
  }

表示“如果将n除以2,则余数为零,则返回false(即n不为奇数)”。

“余数”是当你减去最接近的倍数时遗留的任何东西,所以例如“64%10”是4,因为10的最接近的倍数是60,留下4。

以你的例子换句话说,30/2是15,30%2是零(即30/2之后遗留下来的东西)。以下是关于remainder分割后的更多信息。

答案 1 :(得分:1)

您感到困惑QuotientRemainder。 当您将30除以2时,整数商为15,余数为0.您还可以通过将整数除以除数并从除数中减去它来计算余数。所以对于这个除法,余数是30(被除数) - 15(商)* 2(除数)= 0.

答案 2 :(得分:0)

如果n可以除以2,则意味着它是偶数 - >
这意味着它不奇怪 - >
isOdd是假的