javascript - 这个 For 循环怎么会以这种方式递增?(似乎指数)
问题描述
Javascript新手在这里。我正在自学,现阶段正在学习 For Loops。我正在通过调整 Youtube 教程中的简单示例来玩弄它。我做的一个让我有点困惑:
for (i = 0; i <=7; i+=1) {
console.log(i);
i += i;
console.log(i);
}
它打印出这个输出
鉴于我有两个 console.logs,我知道我需要分别查看两组数字。0,1,3,7 和 0,2,6,14。在这里,我在结果中看到了一些模式。数字递增 2^0,然后是 2^1,然后是 2^2,然后是 2^3,以此类推
我已经被困了一段时间才能理解这一点。但我真的不明白我的代码是如何导致这种情况发生的。所以我真的很感激任何帮助分解代码来解释模式。
解决方案
展开循环以说明其他人在评论中已经指出的内容。您正在i
通过循环增量(如您应该)递增,但每次在循环内也将其加倍。从这个角度来看,这是正在发生的事情i
:
i = 0; // loop initialization
console.log(0);
i = 0 + 0;
console.log(0);
i = 0 + 1; // loop increment
console.log(1);
i = 1 + 1;
console.log(2);
i = 2 + 1; // loop increment
console.log(3);
i = 3 + 3;
console.log(6);
i = 6 + 1; // loop increment
// ...
推荐阅读
- javascript - 在 div 事件期间来回更改文本
- php - PHP - windows和ubuntu之间的密码加密不同
- angularjs - How to add dynamic property in angularjs object
- java - 单选按钮和复选框
- java - sms/email template manipulation in an intentional service
- c# - Is it good practice to have Pages that inherit from a custom class which itself inherits from Page?
- macos - 如何使用 cmake 3.14 导出/导入 MacOS 框架
- matlab - 使用内置 MATLAB 函数 fminimax 进行最大最小优化
- python - 如何从 Django Rest API 压缩 JSON 有效负载
- c++ - 将指针作为输出参数传递给函数