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?
Ultima Online
Criar um jogo é muito mais complexo do que parece. São milhares, às vezes, milhões de linhas de código. Isso não é exagero! Apenas o jogo Ultima Online possui 6.006.313 linhas de programação, totalizando 25.103.295 palavras
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.
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.
Civilization
A empresa Take-Two pagou à Infogrames mais de 22 milhões de dólares pelos direitos de Civilization, em novembro de 1994. Ainda sobre este título, Sid Meier, um dos seus fundadores, é o profissional da área dos games mais premiado em todo o mundo.
Senhas
Digitar senhas em computadores de uso coletivo é extremamente perigoso, pois além de softwares de monitoramento, existem dispositivos de hardware que podem capturar suas senhas. Evite ao máximo acessar sites de bancos a partir destes computadores. Veja mais aqui.










