⾸先因为 setTimeout 是个异步函数,所有会先把循环全部执⾏完毕,这时候 i 就是 5了,所以会输出6个 5。
解决办法两种,第一种使用闭包 :
第⼆种就是使用 setTimeout 的第三个参数:
第三种就是使用 let 定义 i 了:
因为对于 let 来说,他会创建⼀个块级作⽤域,相当于下面这样:
⾸先因为 setTimeout 是个异步函数,所有会先把循环全部执⾏完毕,这时候 i 就是 5了,所以会输出6个 5。
因为对于 let 来说,他会创建⼀个块级作⽤域,相当于下面这样:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1984781.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!