成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

javascript - 關(guān)于js,alert()阻塞的問(wèn)題

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

問(wèn)題描述

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

執(zhí)行順序有問(wèn)題

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

結(jié)果: 0,3,2,1,4

執(zhí)行順序沒(méi)問(wèn)題

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

結(jié)果:0,1,2,3,4

這是為什么呢?

問(wèn)題解答

回答1:

建議看一下setTimeout的運(yùn)行原理

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

原因是,setTimeout在中代碼是,如果進(jìn)程被占用,等到進(jìn)程空閑了,就會(huì)跳過(guò)這次,執(zhí)行下一次了

回答2:

貼一個(gè)鏈接,看完以后你應(yīng)該茅塞頓開(kāi)

標(biāo)簽: JavaScript
相關(guān)文章: