比如:for(var i=0;i<10;i++){
setTimeout(function() { console.log(i);
}, 0);
}我一直以为这里是因为闭包才输出10个10,后来面试官告诉我是因为异步,为什么是异步呢?
1 回答
![?](http://img1.sycdn.imooc.com/533e50ed0001cc5b02000200-100-100.jpg)
慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
你问为什么这里输出10的原因是异步?
我只能告诉你,因为setTimeout()
函数是异步的为什么
setTimeout()
函数是异步的?
这个问题你得去问Brendan Eich
。如果你想问的是这里为什么输出10?
因为异步函数必须等主进程运行完毕才会运行,setTimeout()
内部回调运行的时候,主进程已经运行完毕了,此时i=10
,所以输出10。
添加回答
举报
0/150
提交
取消