2012-04-17 56 views
-1
var power = function (base, exponent) { 
    var result = 1; 
    for (i = 0; i < exponent; i++) { 
    result = result * base; 
    } 
    return result; 
}; 

power(2, 2); 

我其实我得到一些的话,我不明白的是 - 什么是for循环在那里做,后线(功能功率)我的JavaScript电源功能如何工作?

回答

2

提高一个数量?一定的力量与多次乘以这个数字相同;所以2提高到2的幂与2 * 2相同,2提高到3的幂等于2 * 2 * 2等。for循环简单地实现了这一点。

4

环路从0(含)至exponent(不包括)乘以baseresult并存储在result结果环路。多次循环后,它会返回结果。所以它将数量提高到给定的功率(见exponentiation)。


边注:此代码属于猎物The Horror of Implicit Globals,因为它未能声明i变量。

+2

+1隐含全局 – jbabey 2012-04-17 13:12:18

2

该函数实际上是通过将基数乘以其自身来以直接方式计算幂函数。

该循环实际上将中间结果与运行范围内的基数相乘。从而计算出result = (((1 * base) * base) * base) * ...以获得最终结果。

顺便说一句有一个内置的功能是:Math.powsee MDN for details