Understanding Event Loop, Call Stack, Event & Job Queue in Javascript
In this article we will dig into how javascript works under the hood, how it executes our asynchronous javascript code, and in what order (Promise vs setTimeout), how it generates stack trace and much more.. As most developers know, that Javascript is single threaded, means, two statement in javascript can not be executed in parallel.

https://medium.com/@Rahulx1/understanding-event-loop-call-stack-event-job-queue-in-javascript-63dcd2c71ecd