- 同步和異步的區別是什麼?分別舉例
- 一個關於setTimeout的筆試題
- 前端使用異步的場景有哪些
判斷有沒有阻塞前端
console.log(100) setTimeout(function () { console.log(200) // 未阻塞,沒有在這兒停頓1s並打印200 }, 1000) console.log(300) // 100 300 200
console.log(100) alert(200) // 1秒後點擊確認 console.log(300)
在可能發生等待的狀況,等待過程當中不能像alert同樣阻塞程序運行,所以,全部的等待狀況都須要異步web
<img>
加載// Ajax請求demo console.log('start'); $.get('./data1.json', function (data1) { console.log(data1); }); console.log('end'); // start end 等待Ajax執行
// <img>加載demo console.log('start'); var img = document.createElement('img'); img.onload = function () { console.log('loaded'); }; img.src = '/xxx.png'; console.log('end'); // start end 等待圖片加載
// 事件綁定demo console.log('start'); document.getElementById('btn1').addEventListener('click', function () { alert('clicked'); }); console.log('end'); // start end 等待元素點擊事件發生
console.log(100) setTimeout(function () { console.log(200) }) console.log(300)
- 同步和異步的區別是什麼?分別舉例
- 一個關於setTimeout的筆試題
console.log(1) setTimeout(function () { console.log(2) }, 0) console.log(3) setTimeout(function () { console.log(4) }, 1000) console.log(5) // 1 3 5 2 1s後打印4
- 前端使用異步的場景有哪些
<img>
加載