Stack Overflow
JavaScript
Erro quando a pilha de chamadas excede o limite por recursão ou aninhamento excessivo.
seção
Explicação
Stack Overflow — Erro quando a pilha de chamadas excede o limite por recursão ou aninhamento excessivo.
Estoure a pilha quando recursão não termina ou cadeias de chamada_member excedem limite do motor (~10k–50k frames).
Converta recursão profunda em loop ou trampolim. DOM aninhado extremo também pode contribuir.
seção
Exemplo
function loop() { return loop(); }// loop(); // RangeError: Maximum call stack size exceededseção
Modo de uso
Definir caso base em toda recursão
Preferir iterativo para árvores profundas
Limitar profundidade em parsers user-facing
seção
Armadilhas comuns
Recursão mútua sem guarda
Spread args massivos em chamada única
seção
Termos relacionados
Aprofundar no artigo
Quer ir além? Este artigo explora o tema em profundidade — leitura recomendada após o glossário.
Call Stack: A Pilha que Organiza a Execução do JavaScript
Entenda a pilha LIFO que rastreia chamadas de função, como o JavaScript sabe onde retornar após cada execução e o que causa o temido stack overflow.
ler artigoMais em JavaScript
Outros termos da mesma categoria para revisão em sequência.
Escopo
JSRegião do código onde um binding de variável é visível e acessível.
ver definiçãoEscopo Léxico
JSEscopo definido pela posição do código no arquivo, não pela pilha de chamadas.
ver definiçãoClosure
JSFunção que retém acesso a variáveis do escopo externo onde foi criada.
também: fechamento
ver definição