点击后,这将输出 1 然后是 2:
const myElem = document.getElementById("myElem")
myElem.addEventListener('click', () => queueMicrotask(() => console.log(1)));
window.addEventListener('click', () => console.log(2));
<button id="myElem">Click me</button>
queueMicrotask
替换为setTimeout
,输出结果为2然后是1。这意味着冒泡发生在微任务中,而不是宏任务中。这是DOM规范的一部分还是仅限于浏览器实现细节?
queueMicrotask
的位置调用setTimeout
并不会改变事件相关的任何内容。 - Ouroborus