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?
Nintendo Wii
Nos primeiros oito dias após o lançamento do console Nintendo Wii foram vendidas 600 mil unidades. Isso equivale a quase um por segundo e estes incríveis números são referentes às vendas apenas nos EUA!
Final Fantasy X
O jogo Final Fantasy X para o Sony Playstation 2 vendeu, apenas no dia do seu lançamento, 1.455.732 cópias, estabelecendo um recorde de vendagem para as primeiras 24 horas de um game. Méritos da SquareSoft, que desenvolveu um excelente produto!
Á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.
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.
Nintendo Entertainment System
O console Nintendo Entertainment System (NES), da Nintendo, detém o recorde de videogame mais clonado em todo o mundo. Já foram catalogados mais de 300 aparelhos diferentes capazes de reproduzir seus jogos! Saiba mais sobre ele aqui.










