for循环中使用回调函数setTimeout()的问题

文章讲述了作者在实现60秒倒计时功能时遇到的问题,setTimeout未正常工作,for循环不受控制。尝试了let声明、闭包和箭头函数,但发现问题并非出在模块化。寻求解答关于回调函数中for循环为何失效的原因。

首先是想做60S读秒功能的:

 在<script>中的代码:

 然后问题出现了,setTimeout没生效直接从1跑到了60??

 效果推得for循环里的 i 没生效,i = 1 导致的,起初我以为是我是var i定义的,导致i没有模块化,

然后我又定义成let i,发现问题没解决? 并不是模块化的问题,网上有说用闭包的,做过尝试并没有用:

然后想到setTimeout中用箭头函数一样可以,然后进行尝试:

 成功是成功了,但是问题来了,回调函数setTimeout()中的函数按道理在里面写在外面写是一样的呀,是什么原因导致的for循环不成功呢?如果有老哥会的请不吝赐教。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值