您的位置:首頁技術文章
文章詳情頁

javascript - 關于js,alert()阻塞的問題

瀏覽:142日期:2023-09-26 09:09:06

問題描述

我們知道alert()是阻塞式的,但是一下代碼執行順序有問題

執行順序有問題

(()=>{ for(let i = 0; i < 5; i++){setTimeout(() => alert(i), 1000); }})()

結果: 0,3,2,1,4

執行順序沒問題

(()=>{ for(let i = 0; i < 5; i++){setTimeout(() => console.log(i), 1000); }})()

結果:0,1,2,3,4

這是為什么呢?

問題解答

回答1:

建議看一下setTimeout的運行原理

你如果在alert 0 的時候,不去點確定,等5s(線程空閑情況,有可能需要等10s或者更長時間) 之后再去點擊,你發現順序就正常了

原因是,setTimeout在中代碼是,如果進程被占用,等到進程空閑了,就會跳過這次,執行下一次了

回答2:

貼一個鏈接,看完以后你應該茅塞頓開

標簽: JavaScript
相關文章:
国产综合久久一区二区三区