为了账号安全,请及时绑定邮箱和手机立即绑定

如何理解setTimeout里面的异步?

如何理解setTimeout里面的异步?

慕田峪7331174 2018-08-06 11:10:11
比如:for(var i=0;i<10;i++){     setTimeout(function() {        console.log(i);     }, 0); }我一直以为这里是因为闭包才输出10个10,后来面试官告诉我是因为异步,为什么是异步呢?
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

  1. 你问为什么这里输出10的原因是异步?
    我只能告诉你,因为setTimeout()函数是异步的

  2. 为什么setTimeout()函数是异步的?
    这个问题你得去问Brendan Eich

  3. 如果你想问的是这里为什么输出10?
    因为异步函数必须等主进程运行完毕才会运行,setTimeout()内部回调运行的时候,主进程已经运行完毕了,此时i=10,所以输出10。


查看完整回答
反对 回复 2018-09-23
  • 1 回答
  • 0 关注
  • 579 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信