1、addEventListener,第三个参数的作用
DOM方法 addEventListener() 需要3个参数,分别为事件名称(String)、要触发的事件处理函数(Function)、指定事件处理函数的时期或阶段(boolean)
当第三个参数设置为true就在捕获过程中执行,反之就在冒泡过程中执行处理函数。
2、js事件阶段(捕获>目标>冒泡),阻止冒泡有哪些方法
- event.stopPropagation();
- return false
- event.preventDefault(); (阻止默认行为)
3、js执行顺序等,要熟悉事件循环机制
- js的执行顺序,先同步后异步
- 异步中任务队列的执行顺序: 先微任务microtask队列,再宏任务macrotask队列
- 调用Promise 中的resolve,reject属于微任务队列,setTimeout属于宏任务队列
<script type="text/javascript">
(function() {
setTimeout(() => { // 1、执行宏任务
console.log(0);
});
new Promise(resolve => {
console.log(1); // 打印
setTimeout(() => { // 2、执行宏任务
resolve(); // 4、执行微任务
Promise.resolve().then(() => console.log(2)); // 5、执行微任务
console.log(3); // 打印
});
Promise.resolve().then(() => console.log(4)); // 3、执行微任务
}).then(() => {
console.log(5); // 打印
Promise.resolve().then(() => console.log(8)); // 6、执行微任务
setTimeout(() => console.log(6)); // 7、执行宏任务
});
console.log(7); // 打印
})();
// 1,7,4,0,3,5,2,8,6
</script>