setTimeout(fn,0)
生活随笔
收集整理的這篇文章主要介紹了
setTimeout(fn,0)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們都知道setTimeout是一個延遲執行的函數
console.log(1); setTimeout(function(){console.log(2);},1000); console.log(3);會得到1,3,2
但是
setTimeout(function(){console.log(1);}, 0); console.log(2);你知道這段代碼會執行什么樣的效果嗎
正確答案是2,1
一開始我也很疑惑,
setTimeout(function(){console.log(1);}, 0);不是隔了0秒就執行嘛,就是立即執行的意思啊,那就是應該答案是1,2呀但是答案不是這樣的
聽阮一峰大神的解釋
setTimeout(fn,0)的含義是指定某個人物在主線程最早可得的空閑時間執行,也就是說,盡可能早的執行。它在任務隊列的尾部添加一個事件,因此要等到同步人物和任務隊列現有的事件都處理完,才會得到執行
?
更多專業前端知識,請上 【猿2048】www.mk2048.com
總結
以上是生活随笔為你收集整理的setTimeout(fn,0)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: async,await
- 下一篇: 手机端调试console.log,直接引