首页 > 解决方案 > for循环中的乘法

问题描述

我是 JS 新手,我完全被这个简单的事情所困扰,我真的很想了解这一点并继续进一步学习。

我有这段代码:

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

console.log(power(2, 10));
// Result is: 1024

控制台中的结果将是 1024

如果我将值更改为:

console.log(power(1, 10));
// Result is: 1

但如果我变成:

console.log(power(3, 10));
// Result is: 59049

我将得到 59049 的结果。

那么,我是如何得到 59049 的结果的呢?我如何得到 1024 的结果?我如何得到 1 的结果?这一切是如何运作的?

如果有人能以尽可能简单和愚蠢的方式向我解释,我将不胜感激:)

谢谢!

标签: javascriptfunctionfor-loop

解决方案


那是因为

2 的 10 次方(或 1 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 * 2)等于 1024

1 的 10 次方(或 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1 * 1)等于 1

3 的 10 次方(或 1 * 3 * 3 * 3 * 3 * 3 * 3 * 3 * 3 * 3 * 3)等于 59049

如果您为函数提供基数和指数,则该函数将执行以下操作:

power(2, 0) 产生 1,因为 exponent 为 0,并且函数立即返回结果(即 1)而不进入循环。

power(2, 1) 产生 2,因为结果(即 1)与循环中的基数(即 2)相乘一次,从而得到 1 * 2 = 2

power(2, 2) 产生 4,因为结果(即 1)与循环中的基数(即 2)相乘两次,从而得到 1 * 2 * 2 = 4

power(2, 3) 产生 8,因为结果(即 1)与循环中的基数(即 2)相乘三倍,从而得到 1 * 2 * 2 * 2 = 8


推荐阅读