简单的JS功能。需要对变量进行澄清

时间:2015-04-06 17:10:45

标签: javascript function

所以我正在读这本书,#34; Eloquent Javascript"今天,正如他们带给我的每一个例子一样,我试着去研究和观察它。我遇到了这个函数,我无法弄清楚为什么变量"结果"需要。我所知道的是,如果它不在函数中,则函数输出不起作用。我无法理解为什么?有人可以快点看一下吗?

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

1 个答案:

答案 0 :(得分:1)

如果以递归方式定义函数,则不需要中间结果

function power(base, exponent, value) {
  value = value || 1;

  // assumes exponent of 0 if none provided. n^0 = 1.
  if (!exponent)
    return value;

  return power (base, exponent - 1, value * base);
}

power(2, 3) // 8
power(9) // 1, since 9^0 is 1

让它处理负指数,你也可以试试这个:

function power(base, exponent, value) {
    value = value || 1;

    // assumes exponent of 0 if none provided. n^0 = 1.
    if (exponent == 0) return value;
    if (exponent < 1) return (1 / power(base, -1 * exponent, value));

    return power (base, exponent - 1, value * base);
}