文章詳情頁
javascript - 關于js,alert()阻塞的問題
瀏覽:121日期: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
相關文章:
1. javascript - 關于JS數組的forEach無法修改數組元素的值2. javascript - 關于js中addEventListener的問題3. javascript - 關于json中獲取多個key-value對中多層嵌套key的name4. javascript - 關于JS 事件委托操作ul li標簽的問題5. javascript - 關于js中嵌套的對象的名稱是變量的問題6. javascript - 關于js高級程序中的問題7. javascript - 關于JS中對象屬性描述符和原型的一些問題8. javascript - 關于jsp中嵌入js代碼的問題9. javascript - 關于JS的this和構造函數問題10. javascript - 關于Js中 this的一道題
排行榜
