js循环打印出0~9,我们第一时间想到的就是for循环。

方法一:最简单的方法就是for循环直接打印:

for (var i = 0; i < 10; i++) {console.log(i);
}

结果:

下面早看这样一段代码:

for (var i = 0; i < 10; i++) {setTimeout(() => {console.log(i);}, 100 * i);}

大家想下,打印的结果是什么?

结果:

为什么不是我们想象的打印10个数呢???

原因:我们都知道,js有两种类型的回调函数:

同步回调:立即执行,完全执行了才结束,不会放到js的回调队列里。

例子:数组遍历相关的回调函数 / promise的excutor函数

异步回调:不会立即执行,会放到回调队列中将来执行。

例子:定时器回调 / ajax回调 / promise的成功或失败的回调

上述方法,setTimeout在若干秒后执行一个函数,他是要在for循环之后的,而for循环执行后i的值为10,所以当setTimeout中的回调函数执行时,i的值为10,所以打印10次10。

方法二:那我们如何在不修改for循环的前提下,实现我们期待的结果呢?立即执行函数

for (var i = 0; i < 10; i++) {(function(i) {setTimeout(() => {console.log(i);}, 100 * i);})(i)}

结果:

 方法三:let声明:

for (let i = 0; i < 10; i++) {setTimeout(() => {console.log(i);}, 100 * i);}

结果:

js循环打印出0~9相关推荐

  1. java js跳出循环_[Java教程]js循环的总结

    [Java教程]js循环的总结 0 2016-10-07 15:00:14 js原生的循环有两种,一般的for循环和for...in循环.还有一种常用jQuery.each()循环. 一. js原生循 ...

  2. js循环动态绑定带参数函数遇到的问题及解决方案[转]

    今天写原生javascript时,想利用绑定事件实现类似jquery中on方法的功能:于是有了for循环里绑定事件,无意中发现定义类能解决好多问题! 例如:一个不确定长度的列表,在鼠标经过某一条的时候 ...

  3. js循环/迭代/遍历有多少方法

    js循环/迭代/遍历有多少方法 JavaScript中存在着很多循环的方法 常见的有for,while,do while,for in等, ES5中的forEach, ES6的for of , jqu ...

  4. js循环绑定事件问题及解决方法

    js初学者经常遇到的循环绑定事件问题 js循环绑定事件 在编写JS代码的时候,我们经常会遇到要对一系列元素进行事件绑定的情况,然后就会理所当然的开一个for循环,对元素的事件进行赋值等操作,最后运行的 ...

  5. Python学习 Day26 JS循环语句(二)

    JS循环语句(二) (一)寻找质数 输出1-100之间的质数 for(var num = 1;num <= 100;num++){//累加器,只要遇到是数字num的约数,这个变量就进行+1var ...

  6. 突发奇想想实现js循环里停顿一秒再循环的功能

    突发奇想想实现js循环里停顿一秒再循环的功能. 首先用了两种定时器,但是循环还是一瞬间结束. 最后还是放弃,用了另一种思路. // An highlighted blocki: 0,///我是用的vu ...

  7. Ext JS的4.1.0的RC 1的发行说明

    Ext JS的 - JavaScript框架 Ext JS的4.1.0的RC 1的发行说明 发行日期:2012年3月13, 版本号:4.1.0的RC 1 修正的错误 钮 EXTJSIV-5129 按钮 ...

  8. 360开机小助手js循环效果出现的问题

    360开机小助手js循环效果 这里我想用这个案例探讨一下onclick和addEventListener嵌套问题,下面是案例的整体代码 <style>.box {width: 322px; ...

  9. JS循环遍历中使用异步

    参考:https://blog.csdn.net/qq_45265059/article/details/119892746 JS循环遍历中使用异步 对于同步顺序执行异步操作,并且每次异步操作都需要随 ...

最新文章

  1. Python的浅拷贝和深拷贝
  2. 【HIBERNATE框架开发之九】HIBERNATE 性能优化笔记!(遍历、一级/二级/查询/缓存、乐观悲观锁等优化算法)...
  3. C++实现cut rod切杆算法(附完整源码)
  4. 记一次kubect init初始化端口占用问题
  5. mysql-5.7 group commit 详解
  6. 树形DP+DFS序+树状数组 HDOJ 5293 Tree chain problem(树链问题)
  7. Android的Wifi系统框架分析第一篇
  8. c语言小球消砖块增加一行砖块,基于Unity的小球撞击砖块小游戏
  9. 天问: 世界到底由什么组成?
  10. Docker 配置国内镜像加速器,加速下载速度
  11. 为你的Typecho文章页面添加微信公众号二维码-星泽V社
  12. nagios的安装及nrpe的配置
  13. 京东数据中心设施运维管理(三)
  14. easyui支持ie8浏览器
  15. Real-ESRGAN
  16. 小型气象站参数有哪些
  17. 暗影精灵4适合计算机专业,暗影精灵4什么时候出?今日发布,为专业电竞而生...
  18. Dagger2 进阶
  19. 12 个最佳的免费网络监控工具、免费网站监控工具超级好用的有那些
  20. mysql实现对商品进行分类,并根据排名占比打标签

热门文章

  1. 填坑记录——扫雷游戏的重置
  2. 《MLB棒球创造营》:走近棒球运动·德州游骑兵队
  3. 注册表操作C/C++(实战实现程序自启动)
  4. 农村信用社计算机类资料,农村信用社笔试复习资料:计算机知识(3)
  5. 信用社pb通用记账_2018年农村信用社高频考点:会计账户
  6. JS跟APP交互——H5调用原生APP的方法
  7. Tesseract综述
  8. VC 模拟鼠标和键盘输入
  9. java 数学公式解析框架有哪些_开源工具 | 推荐几个Gitee火热Java项目
  10. 用 Python 分析《长安十二时辰》