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

power(2, 2);

私は実際にそれのいくつかを取得しますが、取得しないのは - for ループはそことその後の行で何をしますか?(関数の力の)

4

3 に答える 3

4

ループは0(包括的) からexponent(排他的) までループし、 を乗算resultbaseて結果を に格納しresultます。その回数ループすると、結果が返されます。したがって、数値を特定の累乗に上げています(累乗を参照)。


補足: このコードは、変数の宣言に失敗するため、暗黙のグローバルの恐怖の餌食になります。i

于 2012-04-17T12:54:21.450 に答える
2

数値を特定の累乗にすることは、その数値をそれ自体で何回も掛けることと同じです。したがって、2 の 2 乗は 2 * 2 と同じであり、2 の 3 乗は 2 * 2 * 2 と同じforです。ループは単純にそれを実装します。

于 2012-04-17T12:53:54.910 に答える
2

この関数は実際には、基数をそれ自体で複数回乗算することにより、単純な方法で累乗関数を計算します。

ループは実際に中間結果をリーチ実行のベースで乗算します。result = (((1 * base) * base) * base) * ...これにより、最終結果を得るために計算します。

ところで、これには組み込み関数があります: Math.pow(詳細については MDN を参照してください)

于 2012-04-17T12:54:34.097 に答える