- 博客(1)
- 收藏
- 关注
原创 面试题——循环中使用闭包解决 var 定义函数的问题
为什么会输出错误的结果而不是从1到6呢?原理:JavaScript是单线程执行的,而setTimeOut函数是异步函数,它会先被放到单线程的事件队列中,在指定的事件间隔后,才会执行这个函数。但是for循环会继续执行下去,因为他并不是异步的,它会立即执行并在短时间内完成所有的迭代,所以在这个循环中每次都会设定一个定时器,并且在指定的时间后,进行日志的打印,而这时所有的迭代都已完成,所以会出现6个6这样的结果。
2024-03-19 22:31:13
287
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人