Ajuda
Quando algo não funciona
Todos os programadores, mesmo os melhores, passam o dia a resolver erros. O segredo é ter um método. Segue esta lista por ordem.
1 Gravaste o ficheiro?
No VS Code, um ficheiro por gravar tem uma bolinha branca no separador, em vez do ✕. Carrega em Ctrl+S.
💡 Para nunca te esqueceres, ativa a gravação automática: menu File / Ficheiro → Auto Save / Gravação automática.
2 Estás a ver a página certa?
- O endereço do browser deve ser parecido com
http://127.0.0.1:5500/index.html(Live Server). - Confirma que estás a editar a pasta certa. Cuidado com pastas repetidas, como
meu-crm (1)ou uma cópia nas Transferências. - Recarrega a página sem memória: Ctrl+F5.
3 Lê o erro na Consola
Carrega em F12 e escolhe o separador Consola / Console. Os erros aparecem a vermelho.
À direita do erro está o nome do ficheiro e o número da linha (por exemplo app.js:42). Clica nele para ir diretamente à linha com problema.
| A mensagem diz… | Quer dizer… | O que fazer |
|---|---|---|
X is not defined | O JavaScript não conhece nada chamado X. | Falta colar a função ou a variável X, ou o nome está escrito de outra forma (maiúsculas contam!). |
Cannot read properties of null (reading 'value') | O getElementById('…') não encontrou o elemento. | O id no HTML é diferente do que está no JavaScript, ou falta colar esse HTML. |
Unexpected token '}' ou missing ) after argument list | Há chavetas ou parênteses a mais ou a menos. | Colaste a meio de outra função, ou não copiaste o bloco todo. Desfaz (Ctrl+Z) e volta a colar no sítio indicado. |
Unexpected end of input | Falta fechar alguma coisa no fim do ficheiro. | Procura uma função a que falte a } final. |
Identifier 'X' has already been declared | Existem duas variáveis ou funções com o mesmo nome. | Colaste o mesmo bloco duas vezes, ou esqueceste-te de apagar a versão antiga numa «substituição». |
Cannot access 'X' before initialization | Usaste uma variável antes da linha que a cria. | A linha atualizarEcra(); do arranque tem de ficar no fim do app.js. |
X is not a function | Chamaste como função algo que não é uma função. | Nome mal escrito, ou falta colar a função. |
Unexpected token … in JSON | Os dados guardados no browser estão estragados. | F12 → Aplicação/Application → Armazenamento local/Local Storage → apaga as chaves crm_… e recarrega. |
4 Não há erros, mas nada acontece
- O botão tem o
onclick="…"com o nome certo da função? - O
index.htmltem as linhas<script src="dados.js">e<script src="app.js">mesmo antes de</body>? - Ficaste com duas funções com o mesmo nome? Em JavaScript vale a última.
- Escreve o nome da função na Consola (ex.:
guardarCliente) e carrega Enter. Se aparecer o código, a função existe.
5 Compara com o ponto de controlo
Descarrega o ponto de controlo da aula (na página inicial) e compara os ficheiros:
- No VS Code, abre o teu ficheiro e o do ponto de controlo.
- No explorador de ficheiros do VS Code, seleciona os dois (Ctrl+clique), carrega com o botão direito e escolhe Compare Selected / Comparar selecionados.
- As diferenças aparecem a verde e a vermelho.
6 Pede ajuda, pela ordem certa
- Um colega: explica-lhe o que tentaste. Muitas vezes descobres o erro só de explicar em voz alta.
- O professor: diz qual é a aula, o passo e a mensagem de erro.
- Uma IA gratuita: pede-lhe uma explicação, nunca o código pronto (és tu que tens de saber explicar o teu projeto na defesa).
⌨️ Atalhos úteis do VS Code
| Atalho | O que faz |
|---|---|
| Ctrl+S | Gravar |
| Ctrl+Z / Ctrl+Y | Desfazer / refazer |
| Ctrl+F | Procurar no ficheiro (ótimo para encontrar os comentários AULA N) |
| Shift+Alt+F | Arrumar o código (formatar) |
| Ctrl+/ | Pôr / tirar comentário nas linhas selecionadas |
| Ctrl+G | Ir para uma linha (ex.: a linha do erro) |
🔌 E se não puder instalar o Live Server?
Faz duplo clique no index.html para o abrir no browser. Depois de cada alteração, grava e carrega em F5. Funciona quase tudo.
O laboratório SQL pode não conseguir ler os dados do teu CRM; nesse caso usa o botão «Usar dados de exemplo».