Olá! Meu nome é Vinícius Neves, o Careca Barbudo. Se ainda não era seu melhor amigo, agora passou a ser! Estou aqui para discutirmos como o JavaScript funciona na web.
O que é necessário para maximizar o aprendizado neste curso? Para aproveitarmos ao máximo, é essencial dominar JavaScript. Não abordaremos a linguagem em si nem estruturas de dados; consideramos esse conhecimento um pré-requisito. Além disso, HTML e CSS, que são a base da web, também são necessários. Se você domina JavaScript, HTML e CSS, está preparade para nos acompanhar.
Neste curso, desenvolveremos dois projetos. Primeiro, começaremos com um quiz. Nesse quiz, nós o executaremos até o fim e o reiniciaremos para começar novamente. Trabalharemos com perguntas e respostas, controlaremos o estado e, ao final, apresentaremos a pontuação.
Esta é uma aplicação que usaremos para começar a entender como o JavaScript funciona no navegador.
Nosso próximo passo é o Focus. É uma aplicação muito mais ampla e mais complexa do que o Quiz (Questionário). Ela terá:
localStorage e, em seguida, conectaremos ao back-end (camada de servidor), isto é, faremos requisições HTTP para montar essa lista de tarefas: criar, excluir, editar;Trata-se de uma aplicação muito completa para entendermos como tudo isso funciona. E, obviamente, faremos tudo isso usando o Cursor. Algumas partes implementaremos manualmente e outras delegaremos ao agente, pois é assim que o desenvolvimento de software funciona atualmente.
Eu espero que você esteja com o mesmo nível de animação que eu. Eu te espero no próximo vídeo. Vamos com tudo! Até mais!
Para aproveitarmos bem este curso, vamos compartilhar alguns conselhos sobre o que é importante já conhecer e com o que precisamos estar confortáveis para aproveitar ao máximo o conteúdo que veremos. Vamos nos concentrar em HTML, CSS e JavaScript, principalmente no mecanismo do navegador, no Chrome (navegador).
Para aproveitar 100%, o que precisamos já conhecer e com o que é importante ter familiaridade? Primeiro, Figma. Ao clicarmos em “preparando o ambiente”, onde está o link para o Figma do projeto, seremos levados a uma tela muito parecida com a que vemos agora, que contém um botão como Open in Figma (Abrir no Figma). A partir daí, poderemos clonar o projeto para nosso espaço. Não vamos executar esse procedimento aqui. No arquivo, veremos os elementos do Focus bem organizados e poderemos inspecionar cada um deles, observar tamanhos, fontes; na parte superior, há um guia de tipografia; também podemos coletar todas as cores — por exemplo, as cores que formam o degradê. Está tudo disponível. Quanto mais familiaridade tivermos com o Figma, melhor. Recomendamos explorar, experimentar e navegar pela ferramenta, porque a utilizaremos várias vezes ao longo do nosso percurso.
Outro ponto: nosso IDE (Ambiente de Desenvolvimento Integrado) ou editor de texto. Durante o curso, vamos usar o Cursor. Podem surgir dúvidas como: “Vini, por que usar o Cursor? É algo ‘hipster’ que ninguém utiliza?”. Não. Há bastante gente que utiliza, e, sobretudo, ele nos permite ter contato com agentes de código. O Cursor possui uma camada gratuita muito boa, com a qual podemos fazer bastante coisa. Por isso vamos utilizá-lo.
Já o temos instalado; basta abrir um projeto. Vale destacar que o Cursor tem dois modos: um mais orientado ao uso como IDE e outro modo, chamado Cursor 3, mais focado em agentes. Como estamos estudando e aprendendo, não vamos usar o modo de agentes; ou seja, não vamos usar o Cursor 3, e sim o Cursor “normal”.
Vamos fechar a pasta que abrimos sem querer, mas está tudo aqui. Conseguiremos nos orientar bem.
Qual é o bônus? Se estivermos usando VS Code até agora, a experiência será basicamente a mesma, com apenas alguns atalhos diferentes. Se, por exemplo, já tivermos acesso a Cloud Code, Copilot, AntiGravity, Unidisurf ou qualquer outra ferramenta de código, IDE ou editor de texto, podemos utilizá-la e aproveitar da mesma forma. Não é necessário usar a mesma ferramenta que estamos usando aqui; o que aprendermos pode ser aplicado em qualquer uma delas, seja qual for.
Um ponto muito importante é o terminal. No Windows, existem algumas opções:
No Linux ou no macOS, caso queiramos experimentar outra opção, existe o O+.excel, que é outro tipo de terminal, com funcionalidades diferentes. É uma boa alternativa.
Nós vamos utilizar o Warp. É um terminal bastante eficiente, com muitas funcionalidades, inclusive para visualizar código dentro dele, se necessário. Ele possui uma camada de IA, mas nós não vamos utilizá-la; vamos usar apenas a camada de terminal. Nem mesmo estaremos conectados no Warp: usaremos somente o terminal.
O que precisamos conseguir fazer no terminal para estarmos prontos para seguir? No mínimo:
Essas práticas ajudam a maximizar o aproveitamento do aprendizado de JavaScript para web.
Familiarize-se e sinta-se confortável com o computador e com o ambiente de desenvolvimento. Cuide do setup, ajuste os atalhos ao seu gosto, defina o tamanho de fonte que precisar e escolha o tema do editor conforme preferir (modo claro ou escuro). É essencial estar confortável com tudo isso para que possamos focar no que importa: JavaScript para a web.
Dito isso, vamos começar a escrever um pouco de código, com os fundamentos necessários. Tudo certo? Vamos em frente.
Vamos começar entendendo como JavaScript funciona no navegador. Precisamos pensar em JavaScript como uma camada que adiciona dinamismo à aplicação. O ciclo de uso será o seguinte: a pessoa usuária interage com a aplicação — clica em um botão, envia um formulário, digita algo em um campo — e JavaScript ficará atento ao que acontece, atualizando o DOM (ou seja, o documento, a página HTML) para refletir o que foi alterado.
Isso pode incluir adicionar uma tarefa à lista de tarefas, remover uma tarefa ou iniciar o temporizador. Vimos que o Focus é uma aplicação de técnica Pomodoro. Todas essas interações serão interpretadas por JavaScript, que executará o que indicarmos para reagir aos eventos da pessoa usuária.
Como isso funciona, em linhas gerais? O navegador carrega a página HTML, identifica que há um arquivo de JavaScript a ser baixado, realiza o download, executa o arquivo e, ao executá-lo, segue as instruções que definimos. Pedimos ao navegador, por exemplo: “se alguém clicar neste botão, execute esta função”. É exatamente isso que nosso arquivo de JavaScript fará. Vamos começar a escrevê-lo, montar o HTML base com as tags necessárias e fazer algo acontecer no navegador.
No terminal Warp, dentro da pasta "projetos", vamos limpar o terminal para remover o que estávamos testando anteriormente e criar uma nova pasta chamada "quiz". Em seguida, vamos abrir o explorador de arquivos a partir de onde estamos. Lá estará a pasta "quiz". Nosso objetivo é abrir essa pasta "quiz" no Cursor. Ele pode demorar um pouco; como ainda não há nenhum arquivo, não vamos fazer nenhuma operação adicional nesse momento. Vamos fechar, abrir novamente e criar um arquivo index.html.
Para registrar os comandos de início do projeto, no terminal executamos:
mkdir quiz
open .
Usaremos um atalho para preencher a base do documento HTML. Em seguida, ajustaremos o título do documento para “Quiz” e alteraremos o idioma no atributo lang, no topo do HTML, para “pt-BR”. Observemos que, ao pressionar a tecla Tab no Cursor, entramos na camada de IA do editor, que tenta adivinhar nossas próximas ações com recursos de autocompletar. Esse autocompletar tem um limite diário na versão gratuita, mas, enquanto disponível, procura antecipar nosso próximo passo e a próxima linha de código.
Primeiro, criamos a estrutura base do index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>
Agora aplicamos os ajustes prometidos:
<title>Quiz</title>
<html lang="pt-BR">
Vamos focar no HTML e maximizar o Cursor. Criaremos a tag
para agrupar toda a aplicação. Dentro dela, colocaremos umComeçamos adicionando a estrutura de main:
<body>
<main>
</main>
</body>
Em seguida, inserimos o título da página dentro de main:
<h1>Quiz</h1>
Vamos inserir um parágrafo de teste para orientar a pessoa usuária: algo como “Teste seus conhecimentos aqui com nosso quiz”. Antes de as perguntas aparecerem, criaremos um
score. Assim, quando for necessário manipular a pontuação, poderemos localizar esse elemento pelo id.Primeiro, adicionamos o parágrafo de orientação:
<p>Teste seus conhecimentos com nosso quiz!</p>
Depois, criamos o contêiner da pontuação:
<div>
</div>
Acrescentamos a legenda de pontuação:
<p>Pontuação: </p>
E a visualização inicial do valor:
<p>Pontuação: <span>0</span></p>
Por fim, atribuímos um id ao span para conseguirmos manipulá-lo via JavaScript. No HTML final, esse span ficará dentro do parágrafo de pontuação:
<span id="score">0</span>
Agora, adicionaremos um botão para iniciar o quiz, com o texto “Iniciar quiz”. Da mesma forma que fizemos com o score, também colocaremos um id nesse botão para podermos encontrá-lo facilmente no DOM.
Primeiro criamos o botão:
<button>
Iniciar Quiz
</button>
Em seguida, adicionamos um id ao botão para facilitar sua seleção no JavaScript:
<button id="start-quiz">
Em seguida, vamos criar a estrutura para as perguntas. Adicionaremos um novo
question-1. Vamos aceitar a sugestão do Cursor para o enunciado: “Qual é a capital do Brasil?”. Antes da pergunta, apresentaremos a identificação “Questão 1”. Depois, incluiremos as opções de resposta como botões. Entre as opções, colocaremos, por exemplo: Brasília, São Paulo, Rio de Janeiro, Tocantins, Paraná e, se necessário, ajustaremos uma delas para Santa Catarina.Estruturamos a primeira pergunta:
<div id="question-1">
Identificação da questão:
<p>Questão 1</p>
Enunciado:
<p>Qual é a capital do Brasil?</p>
E as opções como botões:
<button>
<p>São Paulo</p>
</button>
<button>
<p>Rio de Janeiro</p>
</button>
<button>
<p>Brasília</p>
</button>
Continuando com mais alternativas:
<button>
<p>Tocantins</p>
</button>
<button>
<p>Paraná</p>
</button>
<button>
<p>Santa Catarina</p>
</button>
Queremos visualizar isso no navegador. Para isso, usaremos o recurso “Go Live”. Caso surja a dúvida sobre o que é o “Go Live”, trata-se de uma extensão instalada no Cursor que disponibiliza o arquivo index.html no navegador. O nome da extensão é Live Server, publicada por Ritwick Dey. Atenção ao nome da pessoa publicadora, pois isso é relevante para encontrar a extensão correta. Antes de ativar o “Go Live”, removeremos um botão que havia ficado sobrando e aparecia além do necessário.
Até aqui, escrevemos bastante HTML para estruturar nosso quiz, mas ainda não criamos nosso arquivo de JavaScript. Vamos pensar em como conectar e carregar esse arquivo na página. O próximo passo será criar um novo arquivo chamado quiz.js dentro da pasta "scripts".
Optamos por manter a pasta "scripts" em vez de colocar os arquivos na raiz do projeto. Poderíamos colocar na raiz e funcionaria, mas preferimos organizar, porque, muito provavelmente, teremos mais de um script.js. Assim, o projeto permanece organizado.
Ao carregar este quiz.js no navegador, queremos executar um console.log com a mensagem “quiz iniciando”. Em seguida, precisamos conectar o HTML com o JavaScript. Para isso, no index.html, descemos até o final e, antes de fechar a tag </body>, importamos esse script. O próprio Cursor completou o caminho automaticamente. O que fazemos aqui? A tag script define a inclusão do arquivo, e o atributo src determina a rota do arquivo que desejamos carregar. Como começamos direto pelo nome da pasta, o caminho é relativo ao arquivo atual. Assim, estando no index.html, a rota relativa entra na pasta "scripts" e carrega o quiz.js.
Criamos o arquivo scripts/quiz.js com o primeiro teste:
console.log("Quiz iniciando...");
E, no index.html, importamos o script antes de </body>:
<script src="scripts/quiz.js"></script>
Vamos verificar se funciona. Para testar, clicamos com o botão direito na página e selecionamos “Inspecionar”. À direita, abriu-se a ferramenta de desenvolvimento do navegador, as Ferramentas do Desenvolvedor, em inglês, Developer Tools (Ferramentas do desenvolvedor). Dentro das Ferramentas do Desenvolvedor, acessamos a aba Console e ampliamos o zoom. Nosso console.log já funcionou: apareceu “quiz iniciando”, informando também a origem: quiz.js: linha 1. Esses dois pontos indicam a linha que gerou o console.log.
Vamos relembrar que podemos encontrar elementos por id. Primeiro, faremos isso no próprio navegador. No Console das Ferramentas do Desenvolvedor, podemos executar JavaScript. Por exemplo, ao declarar uma variável com let, podemos nomeá-la de soma e atribuir o valor de 1 + 1. Em seguida, ao solicitar que mostre soma, o valor é exibido. Portanto, esse Console disponibiliza JavaScript para uso imediato, não apenas o que vem do navegador; podemos executar comandos diretamente ali.
No Console, isso fica assim:
let soma = 1 + 1
soma
Quando precisamos entender o documento HTML e interagir com ele, existe uma variável global — já disponível sem precisar ser declarada — que o navegador fornece: document. Ao invocarmos document, vemos, à esquerda (onde o HTML está renderizado), um destaque em azul. Ao pressionar Enter, visualizamos o conteúdo carregado, por exemplo a origem 127.0.0.1 porta 5500, o index.html e todo o HTML do projeto. Dentro dessa visualização, podemos percorrer a estrutura; ao passar o mouse, cada elemento é destacado. Por exemplo, uma div com id question-1 é destacada como um bloco azul.
No Console, podemos simplesmente inspecionar o objeto document:
document
É por meio desse document, disponível globalmente e injetado pelo navegador, que podemos executar ações como buscar um elemento. Para isso, chamamos document, que possui vários métodos disponíveis. Um deles é getElementById(). Para executar essa função, abrimos e fechamos parênteses e passamos o id do elemento que queremos encontrar. No Cursor, definimos o botão de iniciar; o id é start-quiz. No Console do navegador, ao tentar colar um comando, o Chrome pode alertar para não colar código se não soubermos a origem ou o que faz, pois isso pode permitir que pessoas mal-intencionadas obtenham acesso ao navegador e à identidade da pessoa usuária. Para liberar a colagem, é necessário digitar “allow” (permitir colagem, em inglês, allow pasting). Após essa liberação, executamos document.getElementById("start-quiz") e o botão é encontrado. Portanto, document representa o HTML e também oferece métodos para interagir com ele; getElementById retorna o elemento correspondente ao id.
No Console:
document.getElementById('start-quiz')
Na prática, no quiz.js, copiamos essa chamada para começar a estruturar o código. Declaramos uma constante chamada startQuizButton para armazenar o retorno de document.getElementById("start-quiz"). Em seguida, queremos visualizar o texto desse botão. Para isso, acessamos a propriedade textContent e registramos no console algo como “Texto do botão:” seguido do valor de startQuizButton.textContent. Voltando ao navegador e recarregando a página, vemos: “Texto do botão: iniciar quiz”.
No arquivo scripts/quiz.js, isso fica assim:
const startQuizButton = document.getElementById("start-quiz");
Para inspecionar o texto atual do botão:
console.log("texto do botão", startQuizButton.textContent);
Se quisermos alterar o texto a partir do JavaScript, também podemos. Considerando que isso é um objeto e textContent é uma propriedade do botão do quiz, atribuímos um novo valor — por exemplo, “Iniciando Quiz...”. Após recarregar a página e ampliar o zoom, o texto exibido no botão passa a ser “iniciando o quiz”. Observe que, no console.log anterior, o texto ainda era “iniciar quiz”. Assim, comprovamos que conseguimos manipular o nosso HTML a partir de um arquivo .js.
startQuizButton.textContent = "Iniciando Quiz...";
Conectando todas as partes no fluxo: o nosso HTML carrega um arquivo .js existente no projeto e executa o código válido. Se houver erro de JavaScript, a execução falha e o código não roda. Se o arquivo referenciado não existir, o navegador informará que não foi encontrado. Por exemplo, se inserirmos um espaço no meio do caminho do arquivo, ao recarregar, esse espaço será convertido para %20 na URL, e, como o arquivo com esse nome não existe, veremos um erro em vermelho informando que não foi encontrado. Ao escrever corretamente o nome do arquivo e salvar, o Live Server recarrega a página automaticamente e renderiza o conteúdo corretamente.
Este é o nosso primeiro passo — o hello world (olá, mundo) de JavaScript no navegador. É o início da nossa jornada; ainda temos muitas etapas pela frente. Eu te espero no próximo vídeo.
O curso JavaScript: DOM, eventos e requisições possui 427 minutos de vídeos, em um total de 115 atividades. Gostou? Conheça nossos outros cursos de JavaScript em Front-end, ou leia nossos artigos de Front-end.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
O Plano Plus evoluiu: agora com Luri para impulsionar sua carreira com os melhores cursos e acesso à maior comunidade tech.
2 anos de Alura
Matricule-se no plano PLUS 24 e garanta:
Jornada de estudos progressiva que te guia desde os fundamentos até a atuação prática. Você acompanha sua evolução, entende os próximos passos e se aprofunda nos conteúdos com quem é referência no mercado.
Programação, Data Science, Front-end, DevOps, Mobile, Inovação & Gestão, UX & Design, Inteligência Artificial
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
Acesso à inteligência artificial da Alura.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Luri Vision chegou no Plano Pro: a IA da Alura que enxerga suas dúvidas, acelera seu aprendizado e conta também com o Alura Língua que prepara você para competir no mercado internacional.
2 anos de Alura
Todos os benefícios do PLUS 24 e mais vantagens exclusivas:
Chat, busca, exercícios abertos, revisão de aula, geração de legenda para certificado.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Para quem quer atingir seus objetivos mais rápido: Luri Vision ilimitado, vagas de emprego exclusivas e mentorias para acelerar cada etapa da jornada.
2 anos de Alura
Todos os benefícios do PRO 24 e mais vantagens exclusivas:
Catálogo de tecnologia para quem é da área de Marketing
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais de forma ilimitada.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Conecte-se ao mercado com mentoria individual personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.