¿Tiene prioridad la cola de eventos de javascript?

Estos días, he leído algunos documentos sobre setTimeout, setInterval. Aprendí que el javascript es un solo hilo que solo ejecutará una pieza de código por vez. Al mismo tiempo, si ocurre un evento, se insertará en la cola de eventos y se bloqueará hasta el momento adecuado. Quiero saber cuándo se bloquean muchos eventos que esperan para ejecutarse al mismo tiempo. Estos eventos tienen diferentes prioridades, por lo que el evento de alta prioridad se ejecutará antes que los bajos. O simplemente una cola FIFO.

setTimeout(fn1, 10);
$(document).click(fn2); //will be called at 6ms;
$.ajax({ajaxSuccess(fn3); //async request,it uses 7ms;})

 for () {
    //will run 18ms;
};

En el código anterior, el setTimeout fn1 ocurrirá a los 10 ms, haga clic en el controlador de eventos fn2 a los 6 ms, la devolución de llamada ajax fn3 a los 7 ms. pero las tres funciones se bloquearán hasta que finalice el bucle for. En 18 ms, el bucle for finaliza, así que en qué orden se invocarán estas funciones (fn1, fn2, fn3) o (fn2, fn3, fn1)

Respuestas a la pregunta(3)

Su respuesta a la pregunta