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?
Ábaco
O ábaco é o dispositivo de cálculo mais antigo construído e conhecido pelo homem. Suas formas mais primitivas datam de 400 a.C. e eles foram encontrados na China e na Babilônia. Para saber mais sobre a história dos computadores, clique aqui.
Tetris
O título Tetris detém o recorde de jogo mais adaptado de todos os tempos. No total foram mais de 60 plataformas diferentes que receberam alguma versão do quebra-cabeças criado por Alexey Pajitnov. Conheça mais sobre este incrível jogo clicando aqui.
Inteligência artificial
O primeiro jogo a fazer uso de uma Inteligência Artificial foi o Mouse in the Maze, criado em 1955, na União Soviética. Você pode saber mais sobre ele clicando aqui.
Muitos aplicativos
Instalar vários aplicativos com o mesmo propósito, como editores de texto, reprodutores de músicas ou vídeos e até programas antívirus sobrecarregam o seu sistema operacional e ainda ocupam espaço desnecessário em seu HD. Tenha apenas um bom programa para cada função.
Space Invaders
O título Space Invaders, lançado em 1980, fez tanto sucesso em todo o mundo que as pessoas compravam o console Atari apenas para poderem jogá-lo em casa. Saiba mais sobre este incrível título clicando aqui.










