我一周学习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.
请为我解释一下?
感谢
答案 0 :(得分:2)
由于您在循环中获得了return
关键字,因此该函数在一个循环后返回。函数只能返回一次,所以一旦它命中return
,它就会返回值并离开函数。如果将return
移到循环之外,则该函数将仅在循环完成后退出。
此外,通过每次减少exponent
变量,您可以减少循环的迭代次数(在一次迭代之后,将其减少到两次,因此它只会循环两次,等等)。要使其变为零,您需要将exponent
的值复制到循环变量(例如n
)中,以使其保持不变并且代码循环exponent
次。
var n = exponent;
for(var i = 0; i < n; i++) {
exponent -= 1;
}
return exponent;