Đoạn code sau in ra gì?
const timer = setTimeout(() => console.log('tick'), 0)
clearTimeout(timer)
console.log('done')- A.done
- B.done tick
- C.(không in gì)
- D.tick done
Đáp án: A
Chỉ in done. setTimeout trả về một handle; clearTimeout(handle) chạy đồng bộ ngay sau đó nên timer bị hủy trước khi event loop kịp chạy nó. Callback tick không bao giờ được gọi. (FREE)
Nguồn tham khảo