Tipos de erros comuns em JavaScript: o que significam as mensagens?
Entenda as mensagens de erro mais frequentes e como interpretá-las para encontrar a causa do problema.
Errar faz parte do processo de programar.
A boa notícia é: mensagem de erro é pista, não inimiga.
Pense como um painel do carro: quando acende uma luz, ele está tentando te avisar de algo específico.
Por que entender mensagens de erro é tão importante?
Porque elas ajudam você a responder 3 perguntas:
- O que deu errado?
- Onde deu errado? (arquivo, linha, coluna)
- Em que contexto aconteceu? (pilha de chamadas / stack trace)
Estrutura comum de uma mensagem de erro
Um erro geralmente mostra:
- tipo do erro (ex.:
ReferenceError) - mensagem (ex.:
x is not defined) - local (arquivo + linha + coluna)
- stack trace (caminho de funções até o erro)
Exemplo:
Uncaught ReferenceError: usuario is not defined
at app.js:10:15
1) SyntaxError (erro de sintaxe)
Acontece quando o código está “gramaticalmente” inválido.
Exemplo:
if (true {
console.log("oi");
}
Falta ) no if.
Dica: confira parênteses, chaves, aspas, vírgulas e estrutura geral.
2) ReferenceError (variável não encontrada)
Acontece quando você usa algo que não existe no escopo atual.
Exemplo:
console.log(nomeUsuario);
Se nomeUsuario não foi declarado, aparece ReferenceError.
Dica: revise nomes de variáveis e onde elas foram declaradas.
3) TypeError (tipo incompatível)
Acontece quando você tenta usar um valor de um jeito que não faz sentido.
Exemplo:
const idade = 25;
idade.toUpperCase();
Número não tem toUpperCase, então dá TypeError.
Outro exemplo comum:
const botao = null;
botao.addEventListener("click", () => {});
Se botao é null, não dá para chamar método nele.
4) RangeError (valor fora do intervalo permitido)
Acontece quando um valor está fora do limite esperado.
Exemplo clássico:
const arr = new Array(-1);
Tamanho de array não pode ser negativo.
5) URIError (problema em URL codificada/decodificada)
Mais raro no dia a dia inicial, mas pode aparecer com decodeURIComponent.
Exemplo:
decodeURIComponent("%");
Isso gera erro por formato inválido.
6) Erros lógicos (não quebram o código, mas resultado fica errado)
Nem todo erro aparece em vermelho no console.
Às vezes o código roda, mas entrega resultado incorreto.
Exemplo:
const total = "10" + 5; // "105", não 15
Aqui não quebra, mas a lógica pode estar errada para o objetivo.
Palavras importantes que aparecem no console
- Uncaught: erro não foi tratado.
- is not defined: variável inexistente no escopo.
- Cannot read properties of null/undefined: tentou acessar algo em valor inexistente.
- Unexpected token: erro de sintaxe.
- at arquivo:linha:coluna: local do problema.
Estratégia prática para interpretar erro
- Leia o tipo do erro.
- Leia a mensagem completa.
- Vá para linha e coluna indicadas.
- Verifique o valor das variáveis próximas.
- Corrija e teste novamente.
Resumo da lição
- Mensagens de erro são guias para encontrar a causa do problema.
- Tipos comuns:
SyntaxError,ReferenceError,TypeError,RangeError,URIError. - Erro lógico também é importante, mesmo sem “quebrar” o código.
- Ler tipo + mensagem + linha/coluna acelera muito seu debugging.