文章詳情頁
javascript - 關(guān)于js,alert()阻塞的問題
瀏覽:292日期:2023-09-26 09:09:06
問題描述
我們知道alert()是阻塞式的,但是一下代碼執(zhí)行順序有問題
執(zhí)行順序有問題
(()=>{ for(let i = 0; i < 5; i++){setTimeout(() => alert(i), 1000); }})()
結(jié)果: 0,3,2,1,4
執(zhí)行順序沒問題
(()=>{ for(let i = 0; i < 5; i++){setTimeout(() => console.log(i), 1000); }})()
結(jié)果:0,1,2,3,4
這是為什么呢?
問題解答
回答1:建議看一下setTimeout的運(yùn)行原理
你如果在alert 0 的時(shí)候,不去點(diǎn)確定,等5s(線程空閑情況,有可能需要等10s或者更長時(shí)間) 之后再去點(diǎn)擊,你發(fā)現(xiàn)順序就正常了
原因是,setTimeout在中代碼是,如果進(jìn)程被占用,等到進(jìn)程空閑了,就會跳過這次,執(zhí)行下一次了
回答2:貼一個(gè)鏈接,看完以后你應(yīng)該茅塞頓開
標(biāo)簽:
JavaScript
相關(guān)文章:
1. javascript - 關(guān)于JS數(shù)組的forEach無法修改數(shù)組元素的值2. javascript - 關(guān)于jsp中嵌入js代碼的問題3. javascript - 關(guān)于JS 事件委托操作ul li標(biāo)簽的問題4. javascript - 關(guān)于JS的this和構(gòu)造函數(shù)問題5. javascript - 關(guān)于js原生事件的綁定與解除綁定6. javascript - 關(guān)于js中addEventListener的問題7. javascript - 關(guān)于JS中對象屬性描述符和原型的一些問題8. javascript - 關(guān)于Js中 this的一道題9. javascript - 關(guān)于json數(shù)據(jù)的展示問題10. javascript - 關(guān)于json中獲取多個(gè)key-value對中多層嵌套key的name
排行榜

熱門標(biāo)簽
網(wǎng)公網(wǎng)安備