Começando com JavaScript
Adicionar JavaScript à sua página web é mais fácil do que você imagina — existem três maneiras de fazer isso, do mais rápido ao profissional.
Três Maneiras de Adicionar JavaScript
1. Inline (atributo onclick)
Escreva o código JS diretamente no atributo de evento de um elemento HTML, como onclick="...".
Esta é a abordagem mais simples, mas não use em projetos reais — misturar HTML e JS junto torna a manutenção um pesadelo.
2. Interno (tag <script>)
Insira uma tag <script> no seu arquivo HTML e escreva o código JS dentro dela. Funciona bem para páginas pequenas e é a abordagem mais comum durante o aprendizado e testes.
A tag <script> pode ficar no <head> ou no <body>, mas posicioná-la logo antes de </body> é recomendado para não bloquear a renderização da página.
3. Externo (arquivo .js)
Escreva seu código JS em um arquivo .js separado e inclua com <script src="xxx.js"></script>. Esta é a prática padrão para projetos reais — separa responsabilidades, permite reutilização e permite que o navegador faça cache do arquivo para carregamento mais rápido.
Exemplo: JavaScript Inline
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Introdução JS - Inline</title>
<style>
body { font-family: Arial, sans-serif; text-align: center; margin-top: 80px; }
#msg { font-size: 22px; color: #333; }
button { padding: 10px 24px; font-size: 16px; border: none; border-radius: 6px; background: #FF9800; color: #fff; cursor: pointer; }
button:hover { background: #F57C00; }
</style>
</head>
<body>
<p id="msg">Clique no botão abaixo</p>
<button onclick="document.getElementById('msg').textContent='JS inline executado!'; document.getElementById('msg').style.color='#FF9800';">Clique Aqui</button>
<p style="margin-top:30px; color:#999; font-size:14px;">👆 Este JS está escrito diretamente no atributo onclick</p>
</body>
</html>
Exemplo: JavaScript Interno
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Introdução JS - Interno</title>
<style>
body { font-family: Arial, sans-serif; text-align: center; margin-top: 60px; }
.box { display: inline-block; width: 150px; height: 150px; background: #9C27B0; border-radius: 12px; transition: all 0.4s; line-height: 150px; color: #fff; font-size: 20px; }
.box.round { border-radius: 50%; }
button { display: inline-block; margin: 20px 8px; padding: 10px 24px; font-size: 16px; border: none; border-radius: 6px; cursor: pointer; color: #fff; }
#toggleBtn { background: #9C27B0; }
#resetBtn { background: #999; }
</style>
</head>
<body>
<div class="box" id="shapeBox">Quadrado</div>
<br>
<button id="toggleBtn">Alternar Forma</button>
<button id="resetBtn">Resetar</button>
<script>
var box = document.getElementById("shapeBox");
var isRound = false;
document.getElementById("toggleBtn").onclick = function() {
isRound = !isRound;
if (isRound) {
box.classList.add("round");
box.textContent = "Círculo";
} else {
box.classList.remove("round");
box.textContent = "Quadrado";
}
};
document.getElementById("resetBtn").onclick = function() {
isRound = false;
box.classList.remove("round");
box.textContent = "Quadrado";
};
</script>
</body>
</html>
Exemplo: JavaScript Externo
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Introdução JS - Externo</title>
<style>
body { font-family: Arial, sans-serif; text-align: center; margin-top: 60px; }
#counter { font-size: 48px; font-weight: bold; color: #2196F3; }
button { padding: 10px 24px; font-size: 18px; border: none; border-radius: 6px; cursor: pointer; color: #fff; margin: 4px; }
#addBtn { background: #4CAF50; }
#subBtn { background: #f44336; }
#resetCount { background: #999; }
</style>
</head>
<body>
<h2>Contador</h2>
<p id="counter">0</p>
<button id="addBtn">+1</button>
<button id="subBtn">-1</button>
<button id="resetCount">Resetar</button>
<!-- Em um projeto real, o JS abaixo deveria ser salvo em um arquivo separado counter.js -->
<!-- <script src="counter.js"></script> -->
<!-- Para fins de demonstração, usamos um script interno aqui -->
<script>
var count = 0;
var counterEl = document.getElementById("counter");
document.getElementById("addBtn").onclick = function() {
count++;
counterEl.textContent = count;
};
document.getElementById("subBtn").onclick = function() {
count--;
counterEl.textContent = count;
};
document.getElementById("resetCount").onclick = function() {
count = 0;
counterEl.textContent = count;
};
</script>
</body>
</html>
Extensões do VS Code Recomendadas para JS
Se você usa VS Code (altamente recomendado), essas duas extensões são tudo que você precisa:
- Live Server — clique com o botão direito em um arquivo HTML e selecione "Open with Live Server" para atualização automática ao salvar, sem precisar apertar F5
- ESLint — captura problemas de sintaxe em tempo real, como um corretor ortográfico para seu código
Executando JS no Chrome DevTools
Pressione F12 para abrir o DevTools, mude para o painel Console e você pode digitar código JS diretamente e pressionar Enter para executá-lo. Esta é a maneira mais rápida de experimentar — teste qualquer trecho de código sem criar um arquivo HTML.
Dica: Pressione a tecla ↑ no Console para recuperar o comando anterior, economizando tempo de redigitação.
Os Atributos defer e async em Tags script
Quando uma tag <script> está no <head>, o navegador pausa a análise do HTML para baixar e executar o JS primeiro — o que pode fazer a página parecer travada. Os atributos defer e async resolvem isso:
| Atributo | Comportamento |
|---|---|
| Nenhum | Baixa e executa imediatamente, bloqueia a análise do HTML |
defer |
Baixa em segundo plano, executa após o HTML ser totalmente analisado (em ordem) |
async |
Baixa em segundo plano, executa assim que terminar o download (ordem não garantida) |
Boa prática: adicionar defer aos arquivos JS externos é a escolha mais segura — <script src="app.js" defer></script>.
📖 Resumo
- Três maneiras de adicionar JS: inline
onclick(não recomendado), interno<script>(ótimo para aprendizado), externo.js(padrão da indústria) - Posicione as tags
<script>logo antes de</body>para evitar bloqueio da renderização - Use o atributo
deferem arquivos JS externos — sem bloqueio e ordem de execução garantida - O Console do Chrome (F12) é o playground JS mais rápido
- VS Code + Live Server + ESLint é o kit padrão de desenvolvimento front-end
- JS inline é conveniente, mas acopla HTML e JS — crie o hábito de separação desde cedo
❓ Perguntas Frequentes
P:Qual a diferença entre colocar o
<script>no head no final do body? R:No head, o navegador para para baixar e executar o script — a página ainda está em branco nesse momento. No final do body, a página é renderizada primeiro, então os usuários não sentem uma "congelada". É como servir a comida antes de contar piadas — não deixe seus convidados com fome.
P:Devo usar defer ou async? R:Use
deferna maioria dos casos. Ele garante que os scripts sejam executados em ordem e somente após o HTML ser totalmente analisado, então os elementos do DOM estão sempre disponíveis.asyncé melhor para scripts independentes de análise (como Google Analytics) que não dependem de outros scripts ou do DOM.
P:Quantas tags
<script>uma página pode ter? R:Quantas você quiser — não há limite. Mas na prática, tente consolidar em poucos arquivos externos para reduzir as requisições HTTP.
📝 Atividades
- Iniciante: Crie uma página HTML com um
<script>interno que exiba um alerta dizendo "Bem-vindo ao JavaScript!" quando a página carregar (dica: usealert()). - Intermediário: Crie uma página HTML e um arquivo
main.jsseparado. Inclua o arquivo JS com<script src="main.js" defer></script>e implemente um botão que altera a cor de fundo da página. - Desafio: Crie uma página com três botões, cada um representando um dos três métodos de inclusão (inline, interno, externo). Quando qualquer botão for clicado, exiba "Este JS foi carregado via método XXX" na página, usando cores diferentes para distingui-los.



