如何理解setTimeout里面的异步?

比如:

for(var i=0;i<10;i++){
    setTimeout(function() {        console.log(i);
    }, 0);
}

我一直以为这里是因为闭包才输出10个10,后来面试官告诉我是因为异步,为什么是异步呢?


慕田峪7331174
浏览 607回答 1
1回答

慕尼黑的夜晚无繁华

你问为什么这里输出10的原因是异步?我只能告诉你,因为setTimeout()函数是异步的为什么setTimeout()函数是异步的?这个问题你得去问Brendan Eich。如果你想问的是这里为什么输出10?因为异步函数必须等主进程运行完毕才会运行,setTimeout()内部回调运行的时候,主进程已经运行完毕了,此时i=10,所以输出10。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript