在这个javascript函数中做什么是变量结果

时间:2011-01-25 04:32:57

标签: javascript

在下面的代码中,如果result设置为1,则代码返回数字1024(2的幂为10)。如果结果设置为2,则代码返回数字2048(或2为11的幂),但如果结果设置为3,则代码不返回数字4096(正如我所料,因为2到如果“结果”设置为3,为什么它会返回3072,否则如果设置为1和2,它会跟随10号和11号的功率模式

function power(base, exponent) {
  var result = 1;
  for (var count = 0; count < exponent; count++)
    result *= base;
  return result;
}

show(power(2, 10));

3 个答案:

答案 0 :(得分:2)

在此代码中,result用作累加器。代码计算result * base**exponent; result不是指数的一部分。

答案 1 :(得分:1)

我觉得你自己很困惑。被提升到某种力量的东西是你的第一个参数(在你的例子2中)。指数是第二个参数(10)。您的示例正常工作。传递12作为你的指数,你会看到你的预期结果。

结果参数只是一个占位符,您可以在其中累积结果(2x2x2x2 ....)

执行所有工作的数字是您作为参数传递给函数的数字。

因此,在您的示例中,您将采用2并将其自身乘以10次,每次将累积结果存储在变量“result”中。让你失望的是结果最初被设置为1.这绝不是要改变的。它是这样构建的,所以如果你将指数设置为0,你将得到1的结果(因为任何数字都会增加到第零次幂= 1)。

无论如何......不要担心结果是什么。在函数调用中关注循环如何与传入的可互换变量值一起工作。

答案 2 :(得分:0)

进行乘法运算:

  1. 3 * 2 = 6
  2. 6 * 2 = 16
  3. 12 * 2 = 24
  4. 24 * 2 = 48
  5. 48 * 2 = 96
  6. 96 * 2 = 192
  7. 192 * 2 = 384
  8. 384 * 2 = 768
  9. 768 * 2 = 1536
  10. 1536 * 2 = 3072
  11. 乘法表也许?另外,Math.pow有什么问题,只是想自己完成它?