请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

疑问:JS 中同步代码也要放到任务队列中吗?

setTimeout(() => {
	console.log(1)
}, 0)
console.log(2);

如上述代码:
console.log(2) 是同步代码,应该是直接放到调用栈中去执行,还是说要先放到 任务队列 中去?
我之前理解的是:只有异步代码返回结果后才会放到 任务队列 中,待调用栈中的同步代码执行完毕,js 引擎才会启动轮询机制向任务队列中查找并放到调用栈中执行。同步代码也要放到 任务队列 中才去执行吗?
请老师解惑。

正在回答 回答被采纳积分+3

2回答

chyco 2021-11-03 16:25:25

老师说“同步代码其实在第一轮异步里”,可以理解为同步代码是window.onload的回调(如果我理解错了,老师看到请指正一下)。这么说的话,同步代码的确进了【回调任务队列】,但是因为它是第一轮进的,所以它进了【回调任务队列】后马上就可以转到【调用栈】执行了

0 回复 有任何疑惑可以回复我~
  • chyco #1
    第一轮回调应该是每个script标签加载完成的,不是onload的,手动笑哭😂
    回复 有任何疑惑可以回复我~ 2021-11-03 16:42:30
lewis 2020-11-07 22:41:19

同步代码其实在第一轮异步里

0 回复 有任何疑惑可以回复我~
  • 提问者 公瑾当年阿 #1
    所以同步代码 也会被放到任务队列中吗
    回复 有任何疑惑可以回复我~ 2020-11-08 11:28:19
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信