Na aula anterior, entendemos que o JavaScript executa código em fases e que tudo acontece de forma organizada.
Agora vamos responder a uma pergunta essencial:
onde e como o JavaScript controla tudo o que está sendo executado?
Para isso, vamos conhecer dois conceitos fundamentais:
- Execution Context (Contexto de Execução)
- Call Stack (Pilha de chamadas)
🎯 Objetivo da aula
Ao final desta aula, você será capaz de:
- Entender o que é um Execution Context
- Compreender como o Call Stack funciona
- Visualizar a execução de funções passo a passo
- Entender por que erros de stack acontecem
- Preparar o terreno para Event Loop e assincronicidade
O que é um Execution Context?
Sempre que o JavaScript executa código, ele cria um Contexto de Execução.
Um Execution Context é um ambiente onde o código é:
- Analisado
- Preparado
- Executado
Podemos pensar nele como uma “caixa” onde o JavaScript guarda tudo o que precisa para executar aquele trecho de código.
Tipos de Execution Context
Existem três tipos principais:
- Global Execution Context
- Function Execution Context
- Eval Execution Context (raro)
Neste curso, vamos focar nos dois primeiros.
Global Execution Context
Quando um arquivo JavaScript começa a ser executado, o JavaScript cria automaticamente o:
Global Execution Context.
É nele que:
- Variáveis globais são registradas
- Funções globais são registradas
- O código começa a rodar
Function Execution Context
Toda vez que uma função é chamada, o JavaScript cria um novo:
Function Execution Context.
Esse contexto existe apenas enquanto a função está sendo executada.
Exemplo simples
function primeira()
{
console.log("Dentro da primeira");
}
function segunda()
{
console.log("Antes da primeira");
primeira();
console.log("Depois da primeira");
}
segunda();
segunda(); // Saída será:
// Antes da primeira // Dentro da primeira // Depois da primeira Agora entra o Call Stack
O Call Stack é uma estrutura de dados que o JavaScript usa para:
- Controlar quais funções estão sendo executadas
- Definir quem entra e quem sai da execução
Ele funciona como uma pilha:
- O último a entrar é o primeiro a sair
Passo a passo do Call Stack
Vamos acompanhar o código anterior:
- O contexto global entra na pilha
segunda()é chamada → entra na pilhaprimeira()é chamada → entra na pilhaprimeira()termina → sai da pilhasegunda()continuasegunda()termina → sai da pilha
Visualização mental
Imagine o Call Stack assim:
| primeira() | | segunda() | | global | Sempre o topo da pilha é o que está sendo executado.
Erros de Call Stack
Quando uma função chama a si mesma sem controle, o Call Stack cresce indefinidamente.
function loop() { loop(); }
loop();
loop(); // Erro: Maximum call stack size exceeded Por que isso é tão importante?
Porque o Call Stack explica:
- Por que o JavaScript é síncrono
- Por que funções bloqueiam a execução
- Por que precisamos de assincronicidade
E isso nos leva diretamente ao próximo conceito.
Resumo da aula para nunca mais esquecer
- Execution Context é o ambiente de execução
- Todo código começa no contexto global
- Cada função cria um novo contexto
- O Call Stack controla a ordem das execuções
- O topo da pilha é sempre o que está rodando
Na próxima aula, vamos entender como o JavaScript consegue lidar com tarefas assíncronas através do Event Loop.
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Asteroids
O título Asteroids, do Atari, possui recorde de pontuação há 30 anos. Em 1982 um americano chamado Scott Safran atingiu a marca de 41.336.440. Atualmente ele faz parte de um minúsculo grupo de jogadores que conseguiram manter seus recordes por mais de 30 anos.
Galaxy Game
As primeiras máquinas de fliperama do mundo a utilizarem moedas, chamadas de Galaxy Game, custavam mais de 20 mil dólares para serem produzidas. Saiba mais sobre elas aqui.
Mouse
O mouse foi criado em 9 de dezembro de 1968, por um americano chamado Douglas Engelbart, que o batizou de "XY Position Indicator for a Display System". Conheça a história do mouse clicando aqui.
ENIAC
O ENIAC, primeiro computador valvulado do mundo, possuía 17.000 válvulas, 500.000 pontos de solda, 30 toneladas de peso e ocupava uma área de 180 metros quadrados. Clique aqui e conheça mais sobre a história dos computadores.
Donkey Kong
A empresa Universal City Studios, detentora dos direitos autorais do King Kong, processou a Nintendo logo após o lançamento de Donkey Kong, pois segundo ela, o game violava os seus direitos. Ela venceu o processo e recebeu da Nintendo uma indenização de quase 2 milhões de dólares.










