所以我正在读这本书,#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;
}
答案 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);
}