香草Javascript初学者

时间:2017-09-16 14:07:40

标签: javascript

我一周学习javascript。 我有一个难以理解的问题。

function power(exponent) {
  for(var i = 0; i < exponent; i++) {
    exponent -= 1;
  }
  return exponent;
}

document.write(power(3));
// result : 1

当我在下面的循环中传递return exponent时(结果:2)

function power(exponent) {
  for(var i = 0; i < exponent; i++) {
    exponent -= 1;
    return exponent;
  }
}

document.write(power(3));
// result : 2

为什么有两种情况,结果不等于0。我认为for循环将循环三(指数-1),结果将等于0.

请为我解释一下?

感谢

1 个答案:

答案 0 :(得分:2)

由于您在循环中获得了return关键字,因此该函数在一个循环后返回。函数只能返回一次,所以一旦它命中return,它就会返回值并离开函数。如果将return移到循环之外,则该函数将仅在循环完成后退出。

此外,通过每次减少exponent变量,您可以减少循环的迭代次数(在一次迭代之后,将其减少到两次,因此它只会循环两次,等等)。要使其变为零,您需要将exponent的值复制到循环变量(例如n)中,以使其保持不变并且代码循环exponent次。

var n = exponent;

for(var i = 0; i < n; i++) {
  exponent -= 1;
}
return exponent;