javascript - 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 的结果?这一切是如何运作的?
如果有人能以尽可能简单和愚蠢的方式向我解释,我将不胜感激:)
谢谢!
解决方案
那是因为
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
推荐阅读
- python - 将字符串拆分为 x 个单词的列表,重复最后的 x-1 个单词
- python - 如何在障碍物或机器人周围添加安全区?
- asp.net-mvc - 提交表单后在 URL 中包含参数
- javascript - 类型错误:调用 Firebase 云函数时无法读取未定义的属性“匹配”
- c - 我修改后指针不会改变
- c++ - 为什么这个 C++ STL 代码编译失败
- pdf - 在 HTML 中显示大的 pdf 将导致不完整的分块编码错误
- jspdf - 使用 JsPDF 和模板添加页眉和页脚
- python - 从表中读取数据并使用 pandas 转换为 xml 时出错
- c# - 防止在 Linux 上删除文件