日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

经典面试题(12):关于事件循环,以下代码将输出什么?

發布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 经典面试题(12):关于事件循环,以下代码将输出什么? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

看下面的代碼,輸出的結果是什么?并解釋你的答案。

function printing() {

console.log(1);

? ?setTimeout(function() {
console.log(2);
? ?}, 1000);

? ?setTimeout(function() {
console.log(3);
? ?}, 0);

? ?console.log(4);
}

printing();


答案:

1
4
3
2


想知道為什么輸出順序是這樣的,我們需要弄了解?setTimeout()?做了什么,以及瀏覽器的事件循環原理。


瀏覽器有一個事件循環用于檢查事件隊列,處理延遲的事件。UI事件(例如,點擊,滾動等),Ajax回調,以及提供給?setTimeout()?和?setInterval()?的回調都會依次被事件循環處理。


因此,當調用?setTimeout()?函數時,即使延遲的時間被設置為0,提供的回調也會被排隊。回調會乖乖地待在隊列中,直到指定的時間用完后,它才開始執行動作。


因此,即使?setTimeout()?回調被延遲0毫秒,它仍然會被排隊,并且直到函數中其他非延遲的語句被執行完了之后,才會執行。所以運行的結果是:1 4 3 2。


熱門文章

原創教程

原創教程:

附加習題:


趣味職場

職場焦慮:

感到迷茫:

培訓出身:

培訓費用:

搞笑黑話:

職業自由:

職場形象:

總結

以上是生活随笔為你收集整理的经典面试题(12):关于事件循环,以下代码将输出什么?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。