Módulo 8 de 8 · Último módulo!
Debugging e Boas Práticas
Ao final deste módulo, você será capaz de:
- Ler mensagens de erro do JavaScript e entender o que elas significam;
- Usar
console.logestrategicamente para investigar bugs; - Aplicar boas práticas de nomenclatura e organização de código;
- Evitar armadilhas comuns de quem está aprendendo.
1. Aprendendo a ler mensagens de erro
Os erros mais comuns em JavaScript têm nomes que já dão uma pista do problema:
SyntaxError— algo está escrito de forma incorreta (parêntese ou chave faltando, por exemplo)ReferenceError— você usou uma variável que não existe ou não foi declaradaTypeError— você tentou fazer uma operação inválida para aquele tipo (ex: chamar algo que não é função)
2. console.log é seu melhor amigo
Quando o código não faz o que você espera, coloque console.log em pontos estratégicos
para ver os valores reais das variáveis durante a execução:
function calcularDesconto(preco, percentual) {
console.log("preco recebido:", preco);
console.log("percentual recebido:", percentual);
const desconto = preco * (percentual / 100);
console.log("valor do desconto:", desconto);
return preco - desconto;
}
console.log(calcularDesconto(100, 10));
Dica: depois de resolver o bug, remova (ou comente) os
console.log de
depuração que você não precisa mais deixar no código final.
3. Desafio: encontre e corrija o bug
O código abaixo deveria somar todos os números de um array, mas tem um bug. Use console.log
para investigar e corrija o erro.
Dica se você travar: confira o valor inicial da variável
soma e os
limites do laço for.
4. Boas práticas de código
- Nomes claros: prefira
calcularMediaacalcoux. - Use
constpor padrão, eletsó quando o valor muda. - Use sempre
===e!==, nunca==/!=. - Indente o código de forma consistente — facilita muito a leitura.
- Evite repetir código: se você copiou e colou um trecho 3 vezes, considere criar uma função.
- Comente o "porquê", não o "o quê": comentários devem explicar decisões, não repetir o código.
// Ruim: nome pouco claro e comentário óbvio
let x = 10; // define x como 10
// Bom: nome claro, sem comentário desnecessário
let precoMaximoPermitido = 10;