Javascript 在浏览器中执行

Javascript execution in browser

这听起来可能很傻,但在过去的几天里让我很烦。我只是想清楚地了解 javascript 在浏览器中是如何解释和执行的,尤其是在事件处理期间。假设我有两个基于同一个元素的点击事件的函数。可能是为两个不同的 类 编写的两个不同的事件侦听器,并且同一元素在单击期间同时具有这两个 类。 js执行器运行先执行哪个函数?

解释器是在触发事件时解释完整的 js 文件,还是像 Java 那样使用解释期间生成的字节码,或者专门执行 x - x+y 行?

与其说函数 1 会先于函数 2 执行,还是相反,我更好奇的是使用 js 注册和处理事件的整个过程背后的机制。

i am more curious about the mechanism behind the whole process of registering and handling events using js.

将其视为一个队列,当您执行 element.addEventListener.

时,事件会被推送到其中

队列有 属性 -> 先进先出

所以,先加入队列的事件监听器(基本上是先被事件目标接收到的)先执行,直到全部执行完。

注意:如果相同的事件处理程序方法是 added more than once(与 addEventListener 的参数相同),则旧的将被新的替换。

其次,当我们通过 addEventListener 添加事件时,我们 specify a boolean value 调用了 - useCapture。如果该值为 true,则分配给父元素的事件将首先触发,然后再触发子元素,如果该值为 false,则反之亦然。