JavaScript Single Thread, Event queue e Event Loop
A base é essencial
Em 2019, no início da minha carreira, estava fazendo um estágio quando a febre da stack NodeJS, ReactJS e React Native tinha acabado de começar a estourar. E eu? Como um iniciante em programação, já fui direto aprender a stack sem nem ter noção de que a base é essencial e se eu tivesse dado valor a frase "Começa pelo VanillaJS" as coisas seriam diferentes. Atualmente sigo minha carreira utilizando NodeJS e da mesma forma que gostaria que eu tivesse tido essa base no inicio, irei repassar aqui. A única palavra que define o JavaScript nesse momento é Single Thread.
Single Thread, Event queue e Event Loop
Diferente de outras linguagens como Java que utiliza multi threads para trabalhar o JavaScript utiliza uma única, pensando de uma forma lógica, como é possivel o JavaScript fazer tudo isso? Por baixo dos panos o JavaScript é composto pela Single Thread, Event queue e Event Loop. A Single Thread é onde todas as nossas funções serão armazenadas como uma pilha ou seja, último a entrar, primeiro a sair e quando essa nossa pilha(stack) estiver toda preenchida o JavaScript irá aguardar ela ser resolvida para prosseguir com outras funções que estão armazenadas no Event Queue o event queue é monitorado pelo Event Loop, imagine o event loop sendo uma laço while que irá ficando dando voltas monitorando se o Event queue está vazio ou não e caso esteja vazio ele irá jogar as funções que deve ser executadas para a stack.