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

power(2, 2); 

가 실제로 나는 그것의 일부를 얻을, 내가 무엇을하지 않는 것은 - 루프 거기에서 할 무엇을 이후 선 (함수 전력)내 JavaScript 기능은 어떻게 작동합니까?

답변

2

에 수를 올리기? 어떤 힘은 여러 번 그 숫자를 그 자체로 곱하는 것과 같습니다; 그래서 2의 힘을 2로 올리는 것은 2 * 2와 같고, 2는 3의 거듭 제곱과 같고 2 * 2 * 2와 같습니다. for 루프는 간단히 구현합니다.

4

루프는 baseresult 의해 승산하고 result에 결과를 저장 exponent (배타적) 내지 (포함)부터 0 루프. 여러 번 반복되면 결과를 반환합니다. 따라서 주어진 숫자로 숫자가 올라갑니다 (exponentiation 참조).


사이드 참고 :이 i 변수를 선언하지 못하기 때문에이 코드는 The Horror of Implicit Globals 먹이 떨어진다.

+2

+1 암시 전역을 – jbabey

2

이 함수는 실제로 기본 함수에 여러 번 곱해서 직선 방향으로 힘 함수를 계산합니다.

루프는 실제로 중간 실행 결과를 도달 실행시 기준에 곱합니다. 따라서 최종 결과를 얻으려면 result = (((1 * base) * base) * base) * ...을 계산하십시오.

는 Btw은 A이에 대한 함수가 내장되어 있습니다 : Math.pow (see MDN for details)

관련 문제