
How is JavaScript single-threaded and asynchronous?
JavaScript in the browser is single-threaded, but the asynchronous behavior is not part of the JavaScript language itself. Asynchronicity is provided on top of the JavaScript engine through the browser APIs. When you want to achieve asynchrony, β by making a fetch request for example β the task is handed over to the browser, which handles it in the background. When the task is finished, it is placed into the tasked queue, which eventually returns it to the call stack.
You can see a great visualization of this functionality on Loupe.

π More Webtips
Master the Art of Frontend
Access exclusive interactive lessons
Unlimited access to hundreds of tutorials
Remove ads to learn without distractions