Sobes.tech
Junior

Como funciona a pilha em JavaScript?

sobes.tech IA

Resposta da IA

A pilha de chamadas (Call Stack) é uma estrutura de dados que rastreia a execução de funções. Quando uma função é chamada, ela é colocada no topo da pilha. Quando a função termina, ela é removida da pilha. O JavaScript é de thread única, portanto, possui uma única pilha de chamadas.

Operações principais:

  • Push: Adicionar uma função ao topo da pilha.
  • Pop: Remover uma função do topo da pilha.

Exemplo:

// A função A chama a função B
function A() {
  B(); // B é colocada na pilha
  console.log('A terminou'); // Quando B terminar, A continuará
}

// A função B chama a função C
function B() {
  C(); // C é colocada na pilha
  console.log('B terminou'); // Quando C terminar, B continuará
}

// A função C simplesmente imprime na consola
function C() {
  console.log('C terminou'); // C termina, removida da pilha
}

A(); // Chamada de A. A é colocada na pilha.
// Pilha: [A] -> [A, B] -> [A, B, C] -> [A, B] -> [A] -> []

Acompanhamento da pilha:

Ação Pilha
A() chamado [A]
B() chamado [A, B]
C() chamado [A, B, C]
C() termina [A, B]
B() termina [A]
A() termina []

Os erros de estouro de pilha (Stack Overflow) ocorrem quando a pilha enche com chamadas excessivas (por exemplo, recursão infinita) e não consegue adicionar novas funções.