Javascript Can';我不明白这个函数是如何工作的

Javascript Can';我不明白这个函数是如何工作的,javascript,Javascript,所以基本上我刚开始学习JS,做了一个小练习,基本上是做一个函数来检查数字是否是偶数,而不使用模运算。当我完成它的时候,我只是想把我的和答案进行比较,但我真的不知道它是如何工作的 function isEven(n) { if (n == 0) return true; else if (n == 1) return false; else if (n < 0) return isEven(-n); else return isEven(n -

所以基本上我刚开始学习JS,做了一个小练习,基本上是做一个函数来检查数字是否是偶数,而不使用模运算。当我完成它的时候,我只是想把我的和答案进行比较,但我真的不知道它是如何工作的

function isEven(n) {
  if (n == 0)
    return true;
  else if (n == 1)
    return false;
  else if (n < 0)
    return isEven(-n);
  else
    return isEven(n - 2);
}
函数isEven(n){
如果(n==0)
返回true;
else如果(n==1)
返回false;
else if(n<0)
返回isEven(-n);
其他的
返回isEven(n-2);
}

我不确定零件(n-2)是如何工作的,它是否以某种方式将数字放入一个循环中,并且在数字为1或0之前基本上不等于2?

如果数字为负数,函数将使其为正数,然后针对正值再次运行,如果它大于1,它将再次运行,直到数字为1或0,在每次迭代中将该数字减少2。它被称为递归。

如果数字为负数,函数将使其为正数,然后针对正数再次运行;如果大于1,函数将再次运行,直到数字为1或0,并在每次迭代时将数字减少2。它被称为递归。

如果数字为负数,函数将使其为正数,然后针对正数再次运行;如果大于1,函数将再次运行,直到数字为1或0,并在每次迭代时将数字减少2。它被称为递归。

如果数字为负数,函数将使其为正数,然后针对正数再次运行;如果大于1,函数将再次运行,直到数字为1或0,并在每次迭代时将数字减少2。这叫做递归。

让我们看看运行此函数时幕后发生了什么:

isEven(8)
// isEven(8) Is 8 even?
//   isEven(6)  Is 6 even?
//     isEven(4)  Is 4 even?
//       isEven(2) Is 2 even?
//         isEven(0) Is 0 even? --> Yes, the function immediately returns true
// so I know the one at the top, 8, is even

等等。对于任何偶数,它最终都会变为0。对于任何奇数,它最终都会变为1。

让我们看看运行此函数时幕后发生了什么:

isEven(8)
// isEven(8) Is 8 even?
//   isEven(6)  Is 6 even?
//     isEven(4)  Is 4 even?
//       isEven(2) Is 2 even?
//         isEven(0) Is 0 even? --> Yes, the function immediately returns true
// so I know the one at the top, 8, is even

等等。对于任何偶数,它最终都会变为0。对于任何奇数,它最终都会变为1。

让我们看看运行此函数时幕后发生了什么:

isEven(8)
// isEven(8) Is 8 even?
//   isEven(6)  Is 6 even?
//     isEven(4)  Is 4 even?
//       isEven(2) Is 2 even?
//         isEven(0) Is 0 even? --> Yes, the function immediately returns true
// so I know the one at the top, 8, is even

等等。对于任何偶数,它最终都会变为0。对于任何奇数,它最终都会变为1。

让我们看看运行此函数时幕后发生了什么:

isEven(8)
// isEven(8) Is 8 even?
//   isEven(6)  Is 6 even?
//     isEven(4)  Is 4 even?
//       isEven(2) Is 2 even?
//         isEven(0) Is 0 even? --> Yes, the function immediately returns true
// so I know the one at the top, 8, is even

等等。对于任何偶数,它最终都会变为0。对于任何奇数,当n当n当n当n当n当n是时,它最终会变成1。基本上。它使用递归执行
n-=2
,直到
n
变为
1
0
。是的,函数一直迭代,直到返回true或false是。基本上。它使用递归执行
n-=2
,直到
n
变为
1
0
。是的,函数一直迭代,直到返回true或false是。基本上。它使用递归执行
n-=2
,直到
n
变为
1
0
。是的,函数一直迭代,直到返回true或false是。基本上。它使用递归执行
n-=2
,直到
n
变为
1
0
。是的,函数不断迭代直到返回true或return FALSE。请注意,当“底部”函数返回
true
时,这就是从下一个函数返回的结果,这是从下一个到下一个到最后一个函数返回的结果,一直到第一个。请注意,当“底部”函数返回
true
时,这就是从下一个到最后一个函数返回的结果,即从下一个到下一个到最后一个函数返回的结果,直到第一个。请注意,当“底部”函数返回
true
时,这就是从下一个到最后一个函数返回的结果,即从下一个到下一个到最后一个函数返回的结果,直到第一个。请注意,当“底部”函数返回
true
时,这就是从下一个到最后一个函数返回的结果,这是从下一个到下一个到最后一个函数返回的结果,一直到第一个。