我在上一篇闭包的文章中留下了一个关于setTimeout与循环闭包的思考题.
利用闭包,修改下面的代码,让循环输出的结果依次为1, 2, 3, 4, 5
for (var i = 1; i <= 5; i++) { setTimeout(function timer() { console.log(i); }, i * 1000);}
下面是一些朋友看了闭包以后给出了的一些题,他们在看了上一篇文章以后也对闭包比较感兴趣
所以我也借助此文章对setTimeout进行一个相关的知识分享,希望大家阅读完之后都能够有新的收获.
初学setTimeout,我们很容易知道setTimeout有两个参数,第一个参数为一个函数,我们通过该函数定义将要执行的操作。第二个参数为一个时间毫秒数,表示延迟执行的时间。
setTimeout(function() { console.log('一秒钟之后我将被打印出来')}, 1000)
执行结果如图
![57a03fd814294fd9c90bd427ed3d9212.png](https://i-blog.csdnimg.cn/blog_migrate/d8880334a404d2bc8e9b9e629d8881a3.jpeg)
可能不少的同学对于setTimeout的理解止步于此,但还是有不少人发现了一些其他的东西,并在评论里提出了疑问。比如上图中的这个数字7,是什么?
每