for (var i=1;i<=3;i++){ setTimeout(function () { console.log(i); },0) } //setTimeout是异步任务 不在主线程中 主线程执行for 把3个setTimeout任务放入等待队列中 //主线程执行完毕时 i=4 再执行异步任务 此时输出的是444 for (let i=1;i<=3;i++){ setTimeout(function () { console.log(i); },0) } //let是块级作用域,则for循环出3个块级作用域,分别为1 2 3 // 即解决了异步机制的问题 此时输出的是1 2 3
异步机制及作用域知识点!
最新推荐文章于 2024-07-26 11:41:15 发布