⚡ Capítulo 01: JavaScript ES6+ Vanilla e a Árvore do DOM
🎯 Objetivos da Aula
Ao final desta aula, você será capaz de:
- Compreender o papel do JavaScript (ES6+) como linguagem de programação dinâmica e interpretada no navegador.
- Entender a estrutura hierárquica do DOM (Document Object Model) gerada pelo navegador a partir do HTML.
- Inspecionar o objeto global
windowe a propriedadedocumentvia DevTools. - Conectar arquivos JavaScript externos (
.js) a páginas HTML5 usando a tag<script src="...">.
🧠 1. O que é o DOM (Document Object Model)?
O DOM não é a linguagem JavaScript em si, mas uma API de programação mantida pelos navegadores que representa a página HTML como uma árvore de objetos encadeados.
flowchart TD Window["window (Objeto Global do Navegador)"] --> Document["document (Página HTML)"] Document --> RootHTML["<html> (Elemento Raiz)"] RootHTML --> HeadNode["<head>"] RootHTML --> BodyNode["<body>"] HeadNode --> TitleNode["<title> Portal Acadêmico"] BodyNode --> HeaderNode["<header>"] BodyNode --> MainNode["<main>"] MainNode --> H1Node["<h1 id='titulo'> Alunos"] MainNode --> PNode["<p class='desc'> Lista de Cadastro"]
O Poder do JavaScript Vanilla no DOM:
O JavaScript atua como um “manipulador” dessa árvore. Através de métodos nativos, podemos:
- Alterar textos, atributos e estilos CSS em tempo real sem recarregar a página.
- Adicionar ou remover nós (
Element) dinamicamente. - Escutar interações do usuário (cliques, digitação, submissão de formulários).
💻 2. Vinculando o JavaScript ao HTML
A boa prática de engenharia frontend exige a separação de responsabilidades, mantendo o código JS em um arquivo externo .js carregado antes do fechamento da tag </body> ou com o atributo defer.
Arquivo HTML: index.html
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Introdução ao JavaScript Vanilla</title>
</head>
<body>
<h1 id="titulo-pagina">Aguardando inicialização...</h1>
<p id="mensagem-status">Status do sistema offline.</p>
<!-- Carregamento do script no final do body -->
<script src="app.js"></script>
</body>
</html>Arquivo JavaScript: app.js
// Exibe mensagem no Console do Desenvolvedor (F12)
console.log(">> Script app.js carregado com sucesso!");
// Inspeciona a arvore do DOM no console
console.log(document);
// Seleciona um elemento pelo ID e altera seu texto no DOM
const titulo = document.getElementById("titulo-pagina");
const status = document.getElementById("mensagem-status");
titulo.innerText = "Sistema de Gestão de Alunos (JS Vanilla)";
status.innerText = "Status: Conectado e Operacional em tempo real!";
status.style.color = "#2e7d32"; // Altera o CSS via JS⚔️ 3. Desafios Práticos (Exercícios 30/50/20)
🥉 Nível Bronze (Fixação)
- O que significa a sigla DOM e qual a sua função em uma aplicação web?
- Por que é recomendado colocar a tag
<script src="app.js"></script>no final do<body>ou utilizar o atributodefer?
🥈 Nível Prata (Aplicação)
- Crie um arquivo HTML e um arquivo
script.js. Utilize o métododocument.querySelector('h1')para selecionar o título da página e alterar sua cor de fundo para amarelo (#fff59d) assim que a página carregar.
🥇 Nível Ouro (Desafio)
- Escreva um script em JavaScript que acesse a propriedade
document.bodye altere a cor de fundo da página de forma dinâmica dependendo da hora atual (ex.: fundo claro entre 06h e 18h e fundo escuro à noite).
💡 Gabaritos Sanfonados de Resposta
💡 Ver Gabarito do Nível Bronze
- DOM significa Document Object Model. É a representação em memória da estrutura HTML em forma de árvore de objetos que permite que linguagens como o JavaScript modifiquem a página dinamicamente.
- Porque se o script for executado no início do
<head>antes do HTML ser lido, o elemento procurado no DOM ainda não existirá na memória RAM, retornandonullou gerando erro.
💡 Ver Gabarito do Nível Prata & Ouro (Código JS)
// Gabarito Nível Ouro: Fundo dinamico baseado na hora
const horaAtual = new Date().getHours();
if (horaAtual >= 6 && horaAtual < 18) {
document.body.style.backgroundColor = "#ffffff";
document.body.style.color = "#333333";
console.log(">> Modo Diurno Ativo");
} else {
document.body.style.backgroundColor = "#1e1e1e";
document.body.style.color = "#ffffff";
console.log(">> Modo Noturno Ativo");
}📚 Referências Teóricas Oficiais
- ECMA INTERNATIONAL. ECMAScript 2023 Language Specification (ECMA-262).
- W3C / WHATWG. DOM Living Standard — Document Object Model (https://dom.spec.whatwg.org/).
⬅️ Voltar ao Sumário da Fase 04 | Próximo Capítulo (Seleção e Manipulação de Elementos) ➡️