JavaScript: O Guia Fundamental para
Desenvolvedores Front-End
Do Básico à Manipulação do DOM
Autoria (Autoria Discente)
Este material foi produzido como parte integrante da Atividade de Extensão do Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas da UNIP.
Autores :
● GUILHERME BORGES (G03IHI3)
● IGOR VIEIRA MAGALHÃES (G0610I3)
● KELWIN ALEXANDRE ASSENCIO MANGINI (G9936J5)
● LEONARDO MONTEIRO MARQUES (R1885B9)
● MIGUEL DOS SANTOS GALVÃO (R110IF1)
● RAFAEL ARLES SOUZA DANTAS (R0796I0)
● YGOR MOREIRA RIBAS (G9048H0)
● DIEGO YUGI UEHARA(G9936G0)
Prefácio do Projeto de Extensão
1. Justificativa e Motivação
Este e-book justifica-se pela posição dominante e insubstituível do JavaScript no mercado de tecnologia. Em um cenário onde a digitalização permeia todas as indústrias, a demanda por aplicações web interativas e responsivas nunca foi tão alta. Aprender JavaScript não é mais uma opção para desenvolvedores web, mas uma necessidade fundamental. Pesquisas globais, como a do Stack Overflow, confirmam ano após ano que o JavaScript é a linguagem de programação mais utilizada por desenvolvedores profissionais no mundo. Essa popularidade se traduz em oportunidades de carreira tangíveis no Brasil, com salários de entrada competitivos para desenvolvedores júnior.
Além disso, todo o ecossistema de desenvolvimento front-end moderno é construído sobre os alicerces do JavaScript. Frameworks essenciais como React, Angular e Vue.js são, em essência, abstrações do JavaScript. Portanto, dominar os fundamentos — o foco deste e-book — é um pré-requisito indispensável para qualquer profissional que deseje se manter relevante.
2. Objetivos do Projeto
● Objetivo Geral: Capacitar a comunidade nos fundamentos essenciais do JavaScript, fornecendo um recurso educacional (e-book) gratuito, completo e de alta qualidade, para fomentar a autonomia no aprendizado e aumentar a qualificação profissional.
● Objetivos Específicos:
○ Sintetizar o conhecimento acadêmico sobre JavaScript em um formato acessível.
○ Estruturar pedagogicamente o conteúdo, progredindo da lógica de programação
básica até a manipulação de páginas web.
○ Disponibilizar publicamente este e-book como uma ferramenta de consulta para a comunidade externa.
3. Público-Alvo
Este e-book destina-se a qualquer membro da comunidade externa à universidade interessado em ingressar na área de tecnologia, com foco em:
● Indivíduos em transição de carreira que estão estudando desenvolvimento web por conta própria.
● Estudantes de escolas públicas ou de cursos técnicos que buscam um material de apoio estruturado.
● Membros da comunidade local que desejam adquirir novas habilidades digitais para aumentar sua empregabilidade.
● Iniciantes em programação que se sentem "perdidos" e precisam de um "norte" para estruturar seu aprendizado.
Sumário
● Capítulo 1: Introdução ao JavaScript
● Capítulo 2: Variáveis e Tipos de Dados
● Capítulo 3: Operadores
● Capítulo 4: Funções
● Capítulo 5: Estruturas Condicionais
● Capítulo 6: Arrays: Listas de Dados
● Capítulo 7: Loops: Repetindo Ações
● Capítulo 8: Objetos: Estruturas Complexas
● Capítulo 9: O DOM: Conectando JavaScript e HTML
● Capítulo 10: Eventos: Respondendo ao Usuário
● Capítulo 11: Projeto Final (Aplicando os Conceitos)
● Capítulo 12: Glossário e Próximos Passos
Capítulo 1: Introdução ao JavaScript
O que é JavaScript?
Bem-vindo ao mundo do JavaScript! JavaScript (ou JS) é uma linguagem de programação que permite implementar funcionalidades complexas em páginas web. Pense no HTML como o esqueleto de uma página e no CSS como a pele e as roupas. O JavaScript é o cérebro e os músculos, permitindo que a página interaja com o usuário, mude dinamicamente e muito mais.
Originalmente criado para rodar apenas nos navegadores, hoje o JavaScript também pode ser usado em servidores (com Node.js), em aplicativos mobile e até em desktops. É uma das linguagens mais versáteis e demandadas do mercado.
Como adicionar JavaScript a uma página?
Existem duas maneiras principais de incluir JavaScript em um arquivo HTML: 1. Script Interno: Escrever o código diretamente dentro da tag <script> no seu arquivo HTML, geralmente antes de fechar a tag </body>.
2. Script Externo: Colocar seu código em um arquivo separado com a extensão .js (ex: script.js) e vinculá-lo ao seu HTML usando a tag <script> com o atributo src. A abordagem de script externo é geralmente preferível, pois mantém seu código organizado (separação de interesses) e reutilizável.
Exemplo: Script Interno <!DOCTYPE html>
<html>
<head><title>Minha Página</title></head> <body>
<h1>Olá, Mundo!</h1>
<script>
// Este é um comentário em JavaScript console.log('JavaScript está funcionando!'); alert('Bem-vindo à minha página!');
</script> </body> </html>
Exemplo: Script Externo <script src="meu_script.js"></script>
// Em seu arquivo meu_script.js console.log('Este código vem de um arquivo externo!');
Pratique!
Questão: Crie um arquivo HTML que, ao ser aberto, exiba um alerta (alert) com a mensagem "Eu amo JavaScript!". Resposta: <script> alert('Eu amo JavaScript!'); </script>
Questão: O que a função console.log() faz? Onde você pode ver sua saída? Resposta: A função console.log() exibe informações no console de desenvolvedor do navegador. Você pode abrir o console geralmente pressionando F12 ou Ctrl+Shift+I.
Capítulo 2: Variáveis e Tipos de Dados
Para trabalhar com informações em JavaScript, precisamos de um lugar para armazená-las. É aí que entram as variáveis.
Declarando Variáveis
Uma variável é como uma caixa com uma etiqueta. Você dá um nome à caixa (o nome da variável) e coloca algo dentro dela (o valor). Em JavaScript moderno, usamos principalmente as palavras-chave let e const.
● let: Use para variáveis cujo valor pode mudar. Ex: um contador de pontos.
● const: Use para variáveis cujo valor não mudará (constante). Ex: o valor de PI. É uma boa prática usar const sempre que possível.
● var: Uma forma mais antiga de declarar variáveis. É recomendado evitar var em código moderno para prevenir comportamentos inesperados.
Tipos de Dados Primitivos
JavaScript tem vários tipos de dados básicos:
● String: Texto, sempre entre aspas. Ex: "Olá, mundo".
● Number: Números, inteiros ou com casas decimais. Ex: 10, 3.14.
● Boolean: Representa verdadeiro (true) ou falso (false).
● Undefined: Uma variável que foi declarada, mas ainda não tem um valor.
● Null: Representa a ausência intencional de um valor.
Exemplo: Usando let e const // Usando let para uma variável que vai mudar let pontuacao = 0; console.log('Pontuação inicial:', pontuacao); // 0 pontuacao = 10; console.log('Nova pontuação:', pontuacao); // 10
// Usando const para um valor que não muda const nomeJogador = "Alice"; console.log('Nome do jogador:', nomeJogador); // "Alice"
// Tentar mudar uma const resultará em erro! // nomeJogador = "Bob"; // -> TypeError
Exemplo: Tipos de Dados const frase = "JavaScript é divertido"; // String const ano = 2024; // Number const ehMaiorDeIdade = true; // Boolean let corFavorita; // Undefined let carro = null; // Null
console.log(typeof frase); // "string" console.log(typeof ano); // "number"
Pratique!
Questão: Declare uma variável const chamada cidade e atribua a ela o nome da sua cidade. Em seguida, exiba-a no console. Resposta: const cidade = "São Paulo"; console.log(cidade);
Questão: Declare uma variável let chamada idade com sua idade. Depois, crie uma nova variável let chamada idadeDaqui5Anos que armazena sua idade mais 5. Exiba o resultado. Resposta: let idade = 30; let idadeDaqui5Anos = idade + 5; console.log(idadeDaqui5Anos); // 35
Capítulo 3: Operadores
Operadores são os símbolos que usamos para realizar operações em variáveis e valores. Eles são as ferramentas que nos permitem criar lógica e tomar decisões no nosso código.
Operadores Aritméticos
São usados para realizar cálculos matemáticos:
● + (Adição)
● - (Subtração)
● * (Multiplicação)
● / (Divisão)
● % (Módulo - resto da divisão)
● ** (Exponenciação)
Operadores de Comparação
Comparam dois valores e retornam um booleano (true ou false).
● == (Igual a): Compara apenas o valor, tentando converter os tipos. Evite usar.
● === (Estritamente igual a): Compara valor E tipo. Use este sempre.
● != (Diferente de)
● !== (Estritamente diferente de): Use este sempre.
● > (Maior que)
● < (Menor que)
● >= (Maior ou igual a)
● <= (Menor ou igual a)
Exemplo: Comparação Estrita vs. Solta
console.log(5 == '5'); // true (compara solta, converte string para número)
console.log(5 === '5'); // false (compara estrita, number não é string)
Operadores Lógicos
Usados para combinar expressões booleanas:
● && (E lógico): true se ambos os lados forem true.
● || (OU lógico): true se pelo menos um lado for true.
● ! (NÃO lógico): Inverte o valor booleano.
Exemplo: Operadores Lógicos const temSol = true; const estaDeFolga = false;
console.log('Vou à praia?', temSol && estaDeFolga); // false console.log('Posso descansar?', temSol |
| estaDeFolga); // true console.log('Não estou de folga?',!estaDeFolga); // true
Pratique!
Questão: Crie uma variável nota1 com valor 8 e nota2 com valor 6. Calcule a média das notas e armazene em uma variável media. Exiba a média no console. Resposta: const nota1 = 8; const nota2 = 6; const media = (nota1 + nota2) / 2; console.log('A média é:', media); // 7
Questão: Verifique se a media calculada no exercício anterior é maior ou igual a 7. Exiba true ou false no console. Resposta: const media = 7; // Do exercício anterior const foiAprovado = media >= 7; console.log('Foi aprovado?', foiAprovado); // true
Capítulo 4: Funções
Funções são blocos de código reutilizáveis que realizam uma tarefa específica. Elas são um dos pilares da programação, permitindo organizar o código, evitar repetição e torná-lo mais legível e fácil de manter.
Anatomia de uma Função
Uma função é definida com a palavra-chave function, seguida por um nome, uma lista de parâmetros (variáveis que a função recebe) entre parênteses (), e o bloco de código entre chaves {}. O comando return especifica o valor que a função "devolve" após sua execução.
Exemplo: Função Tradicional // Definindo a função (parâmetros: a, b) function somar(a, b) { const resultado = a + b; return resultado; }
// Chamando a função (argumentos: 5, 10) const total = somar(5, 10); console.log('O total é:', total); // 15
Arrow Functions
O ES6 (JavaScript moderno) introduziu uma sintaxe mais curta para escrever funções, chamada "Arrow Function". Elas são muito populares em código moderno.
Exemplo: Arrow Function // Função tradicional function multiplicar(x, y) { return x * y;
// Sintaxe da Arrow Function
const multiplicarArrow = (x, y) => { return x * y; };
// Se a função tem apenas uma linha de retorno, pode ser simplificada: const dividir = (x, y) => x / y; // Retorno implícito
console.log(multiplicar(4, 5)); // 20
console.log(multiplicarArrow(4, 5)); // 20
console.log(dividir(10, 2)); // 5
Pratique!
Questão: Crie uma função chamada calcularAreaRetangulo que aceite largura e altura como parâmetros e retorne a área do retângulo (largura * altura). Resposta: function calcularAreaRetangulo(largura, altura) { return largura * altura; }
const area = calcularAreaRetangulo(10, 5); console.log(area); // 50
Questão: Converta a função do exercício anterior para uma Arrow Function (na sua forma mais curta). Resposta: const calcularAreaRetangulo = (largura, altura) => largura * altura; const area = calcularAreaRetangulo(10, 5); console.log(area); // 50
Capítulo 5: Estruturas Condicionais
Na programação, raramente queremos que o código execute da mesma forma todas as vezes. As estruturas condicionais nos permitem tomar decisões e executar diferentes blocos de código com base em certas condições.
O Bloco if...else
A estrutura mais comum é o if. Ele executa um bloco de código se uma condição for verdadeira. O else é opcional e executa um bloco de código se a condição do if for falsa. Para múltiplas condições, podemos encadear com else if.
O Operador Ternário
É uma forma compacta de escrever um if...else em uma única linha, ideal para atribuições condicionais.
A Estrutura switch
Quando você precisa comparar uma variável com múltiplos valores possíveis, a estrutura switch pode ser mais limpa e legível do que vários if...else if.
Exemplo: if, else if, else const hora = 14;
if (hora < 12) { console.log("Bom dia!"); } else if (hora < 18) { console.log("Boa tarde!"); // Esta condição é verdadeira } else { console.log("Boa noite!"); }
Exemplo: Operador Ternário const idade = 20; const status = idade >= 18? "Adulto" : "Menor de idade"; console.log(status); // "Adulto"
Exemplo: switch const diaDaSemana = 3; // 1 = Domingo, 2 = Segunda, 3 = Terça let nomeDoDia;
switch (diaDaSemana) { case 1: nomeDoDia = "Domingo"; break; // O 'break' é importante para sair do switch case 2: nomeDoDia = "Segunda"; break; case 3: nomeDoDia = "Terça"; break; default: // 'default' é como o 'else' nomeDoDia = "Dia inválido"; } console.log("Hoje é:", nomeDoDia); // Hoje é: Terça
Pratique!
Questão: Crie uma variável nota com um valor numérico. Use if...else para exibir "Aprovado" se a nota for maior ou igual a 7, e "Reprovado" caso contrário. Resposta: const nota = 8.5; if (nota >= 7) { console.log("Aprovado"); } else {
console.log("Reprovado"); }
Questão: Crie uma variável permissao (ex: "admin", "usuario", "guest"). Use um switch para exibir uma mensagem diferente para cada tipo de permissão. Resposta: const permissao = "admin"; switch (permissao) { case "admin": console.log("Acesso total concedido."); break; case "usuario": console.log("Acesso padrão concedido."); break; case "guest": console.log("Acesso de convidado, algumas áreas são restritas."); break; default: console.log("Permissão desconhecida."); }
Capítulo 6: Arrays: Listas de Dados
Muitas vezes, precisamos trabalhar com uma coleção de itens, como uma lista de compras ou uma lista de nomes. Arrays são a estrutura de dados perfeita para isso em JavaScript.
O que é um Array?
Um array é uma variável especial que pode conter mais de um valor por vez. Os valores em um array são chamados de "elementos" e são organizados em uma lista ordenada.
Acessando Elementos
Cada elemento em um array tem uma posição, chamada de "índice" (index). A contagem dos índices sempre começa em 0. Para acessar um elemento, usamos o nome do array seguido do índice entre colchetes ``.
Propriedades e Métodos Úteis
Arrays vêm com funcionalidades prontas para nos ajudar a manipulá-los:
● .length: Retorna o número de elementos no array.
● .push(elemento): Adiciona um novo elemento ao final do array.
● .pop(): Remove o último elemento do array.
● .indexOf(elemento): Retorna o índice da primeira ocorrência de um elemento (-1 se não encontrar).
Exemplo: Criando e Acessando um Array // Criando um array de frutas const frutas =;
console.log(frutas); // "Maçã" (primeiro elemento) console.log(frutas[1]); // "Banana" (segundo elemento) console.log(frutas.length); // 3 (tamanho do array)
// Modificando um elemento frutas[1] = "Uva"; console.log(frutas); // ["Maçã", "Uva", "Laranja"]
Exemplo: Adicionando e Removendo Itens const tarefas =; // Adiciona um item no final tarefas.push("Lavar o carro"); console.log(tarefas); //
// Remove o último item const tarefaRemovida = tarefas.pop(); console.log(tarefaRemovida); // "Lavar o carro" console.log(tarefas); //
Pratique!
Questão: Crie um array chamado numeros com os números de 1 a 5. Em seguida, exiba o terceiro elemento do array no console. Resposta: const numeros = [1, 3, 4, 5, 6]; console.log(numeros[3]); // 3
Questão: Crie um array vazio chamado paises. Adicione três países de sua escolha ao array usando o método .push() e depois exiba o array completo no console. Resposta: const paises =; paises.push("Brasil"); paises.push("Japão"); paises.push("Itália"); console.log(paises); //
Capítulo 7: Loops: Repetindo Ações
Loops são uma das ferramentas mais poderosas da programação. Eles nos permitem executar um bloco de código várias vezes, o que é ideal para trabalhar com arrays ou realizar tarefas repetitivas sem ter que escrever o mesmo código de novo e de novo.
O Loop for
O loop for é o mais comum. Ele é composto por três partes: a inicialização (onde o loop começa), a condição (que mantém o loop rodando) e o incremento (o que acontece após cada repetição). É perfeito para quando você sabe exatamente quantas vezes quer que o loop seja executado, como ao percorrer todos os itens de um array.