第一个程序
如图setTimeout程序

图一
在setTimeout处进行断点调试
第一步:

图二
第二步

图三
第三步

图四
第四步

图五
其中第二步,第三步不断循环,i值虽然有变化,但是时间不足1000ms所以不会执行该函数,所以整个循环过程相当于瞬间执行。执行完成后过了1s后,才调用相应函数,而此时i值由于未保留,已经增加到了10。
第二个程序
如图,给函数传入变量i,并立即执行。

图二–1
第一步
循环一轮后,传入参数0,在控制台输出0

图片发自简书App
此时循环仍旧立即执行,只不过每次都把变量打印出来,结果如图所示:

图片发自简书App
但此时setTimeout的时间参数没有任何意义。不起作用。
那么,如何让setTimeout方法控制console.log的输出呢,大家可以先自己思考一下?
这就需要把i变量每次在