PopularJornada
Aprenda JavaScript
Aprenda JavaScript do zero com um curso online grátis e interativo. Domine variáveis, condicionais, loops, funções, estruturas de dados e organização de projetos com desafios práticos, projetos reais, dicas de IA e um certificado ao concluir.
238,854+ codders inscritos
Esta jornada inclui
Ajuda de codificação com IA
Lições interativas e práticas
Narração em áudio em todas as lições
Questionários para testar seu conhecimento
Certificado grátis de conclusão
Programa
4 seções271 lições219 desafios1,458 perguntas de quiz01Seção 1
Fundamentos
Construa uma base sólida com conceitos essenciais e habilidades básicasCOMEÇAR A APRENDERIntrodução
4 lições223- 01A LinguagemDesafio
- 02Olá Mundo!DesafioQuizÁudio
- 03ComentáriosQuizÁudio
- 04Estrutura do CódigoQuizÁudio
Variáveis
7 lições1247- 01NúmerosDesafioMaestriaQuizÁudio
- 02StringDesafioMaestriaQuizÁudio
- 03BooleanoDesafioMaestriaQuizÁudio
- 04Convenções de NomenclaturaDesafioMaestriaQuizÁudio
- 05Variáveis VaziasDesafioQuizÁudio
- 06Recapitulação - Inicializar VariáveisDesafio
- 07ConstantesDesafioMaestriaQuizÁudio
Operadores Parte 1
6 lições1037- 01Operadores AritméticosDesafioMaestriaQuizÁudio
- 02Operador de MóduloDesafioMaestriaQuizÁudio
- 03Atalhos AritméticosDesafioMaestriaQuizÁudio
- 04Operadores de ComparaçãoDesafioMaestriaQuizÁudio
- 05Igualdade Estrita vs Não EstritaDesafioQuizÁudio
- 06Recapitulação - Matemática SimplesDesafio
Operadores Parte 2
5 lições831- 01Operadores Lógicos Parte 1DesafioMaestriaQuizÁudio
- 02Operadores Lógicos Parte 2DesafioMaestriaQuizÁudio
- 03Recapitulação - Lógica SimplesDesafio
- 04Operadores Lógicos Parte 3DesafioMaestriaQuizÁudio
- 05Coerção de TiposDesafioQuizÁudio
Tomada de Decisão
5 lições729- 01Estrutura IfDesafioMaestriaQuizÁudio
- 02If - ElseDesafioMaestriaQuizÁudio
- 03Revisão - Calculadora SimplesDesafio
- 04If - Else AninhadoDesafioQuizÁudio
- 05Estrutura SwitchDesafioQuizÁudio
E/S Básica
6 lições931- 01SaídaDesafioMaestriaQuizÁudio
- 02Saída com VariáveisDesafioMaestriaQuizÁudio
- 03Conversão de Tipos - Parte 1DesafioMaestriaQuizÁudio
- 04Conversão de Tipos - Parte 2DesafioQuizÁudio
- 05Revisão - Até 120Desafio
- 06Revisão - Verdadeiro ou FalsoDesafio
Calculadora de Divisão de Conta
Projeto4 lições1- 01Mensagem de Boas-vindasDesafio
- 02Calculando a Gorjeta e o TotalProjeto
- 03Dividindo a ContaProjeto
- 04Saída FormatadaProjeto
Laços de Repetição
7 lições1345- 01Loop ForDesafioMaestriaQuizÁudio
- 02Loop WhileDesafioMaestriaQuizÁudio
- 03BreakDesafioMaestriaQuizÁudio
- 04ContinueDesafioMaestriaQuizÁudio
- 05Recapitulação - FatorialDesafio
- 06Loop Do WhileDesafioMaestriaQuizÁudio
- 07Loops AninhadosDesafioMaestriaQuizÁudio
Funções
8 lições1250- 01Declarar uma FunçãoDesafioMaestriaQuizÁudio
- 02ArgumentosDesafioMaestriaQuizÁudio
- 03RetornoDesafioMaestriaQuizÁudio
- 04Recapitulação - Função SigmaDesafio
- 05Expressão de FunçãoDesafioMaestriaQuizÁudio
- 06Parâmetros PadrãoQuizÁudio
- 07Arrow FunctionsDesafioMaestriaQuizÁudio
- 08Recapitulação - Função de ValidaçãoDesafio
FizzBuzz com um Diferencial
Projeto4 lições1- 01Visão Geral do JogoDesafio
- 02A Função FizzBuzzProjeto
- 03Percorrendo os NúmerosProjetoÁudio
- 04Adicionando o DiferencialProjeto
Arrays Parte 1
6 lições1037- 01Declarando um ArrayDesafioMaestriaQuizÁudio
- 02Acessando Elementos de um ArrayDesafioMaestriaQuizÁudio
- 03Modificando ArraysDesafioQuizÁudio
- 04Métodos de Array Parte 1DesafioMaestriaQuizÁudio
- 05Métodos de Array Parte 2DesafioMaestriaQuizÁudio
- 06Recapitulação - Processador de ArrayDesafio
Arrays Parte 2
8 lições1254- 01Iterando sobre ArraysDesafioQuizÁudio
- 02O Método forEachDesafioQuizÁudio
- 03Loop for...ofDesafioMaestriaQuizÁudio
- 04Recapitulação - Contador de PDesafio
- 05Fatiamento de ArraysDesafioMaestriaQuizÁudio
- 06Métodos de Array Parte 3DesafioMaestriaQuizÁudio
- 07Métodos de Array Parte 4DesafioMaestriaQuizÁudio
- 08Teste de PertencimentoDesafioQuizÁudio
Rastreador de Lista de Compras
Projeto4 lições1- 01Visão Geral do ProjetoDesafio
- 02Adicionar ItemProjeto
- 03Remover ItemProjeto
- 04Visualizar ListaProjeto
Desafios Finais
3 lições37- 01Pirâmide de NúmerosDesafioQuizÁudio
- 02Dobrar os ÍmparesDesafio
- 03O Que ComprarDesafio
02Seção 2
Lógica & Fluxo
Desenvolva habilidades de resolução de problemas e crie programas dinâmicos e interativosCOMEÇAR A APRENDERStrings em Profundidade
5 lições630- 01Fundamentos de StringsQuiz
- 02Iterar sobre StringsDesafioMaestriaQuiz
- 03Template LiteralsDesafioQuiz
- 04Métodos de StringDesafioMaestriaQuiz
- 05Recapitulação - String WeaverDesafio
Arrays Multidimensionais
9 lições1452- 01Fundamentos de Arrays 2DQuiz
- 02Acessando Elementos de Arrays 2DDesafioMaestriaQuiz
- 03Loops Aninhados com Arrays 2DDesafioMaestriaQuiz
- 04Recapitulação - Arrays 2DDesafio
- 05Adição e Subtração de MatrizesDesafioMaestriaQuiz
- 06Arrays IrregularesDesafioMaestriaQuiz
- 07Arrays 3D e AlémDesafioMaestriaQuiz
- 08Padrões Comuns de Arrays 2DDesafioMaestriaQuiz
- 09Recapitulação - Tudo Sobre ArraysDesafio
JSON Parte 1
7 lições944- 01O que é um JSON?Quiz
- 02Verificar se a Chave ExisteDesafioMaestriaQuiz
- 03Métodos de ObjetoDesafioMaestriaQuiz
- 04O Spread Operator Parte 1Quiz
- 05O Spread Operator Parte 2DesafioMaestriaQuiz
- 06Remover ChavesDesafioMaestriaQuiz
- 07Recapitulação - Manipular Chaves JSONDesafio
JSON Parte 2
6 lições530- 01Iterar sobre JSONDesafioQuiz
- 02JSON AninhadoDesafioQuiz
- 03Encadeamento Opcional em JSONQuiz
- 04Cópia Rasa e ProfundaDesafioQuiz
- 05Recapitulação - Loja de BicicletasDesafio
- 06Recapitulação - Sistema SolarDesafio
Sets Parte 1
8 lições749- 01O que é um Set?DesafioQuiz
- 02Iterando sobre SetsQuiz
- 03Adicionando um elementoDesafioQuiz
- 04Removendo um elementoDesafioQuiz
- 05Verificando se um elemento existeDesafioQuiz
- 06Tamanho e Is EmptyDesafioQuiz
- 07Copy e ClearDesafioQuiz
- 08Recapitulação - O básico de SetsDesafio
Conjuntos Parte 2
6 lições637- 01Matemática - União de ConjuntosDesafioQuiz
- 02Matemática - Interseção de ConjuntosDesafioQuiz
- 03Matemática - Diferença de ConjuntosDesafioQuiz
- 04Matemática - Diferença SimétricaDesafioQuiz
- 05Subconjuntos e SuperconjuntosDesafioQuiz
- 06Recapitulação - Agrupar AmigosDesafio
Sistema de Gerenciamento de Biblioteca
Projeto5 lições1- 01Visão Geral do ProjetoDesafio
- 02Adicionando LivrosProjeto
- 03Buscar por TítuloProjeto
- 04Filtrar por GêneroProjeto
- 05Marcar como LidoProjeto
Tópicos Interessantes sobre Arrays
4 lições422- 01Desestruturação de ArraysDesafioQuiz
- 02Sintaxe Spread em ArraysDesafioQuiz
- 03Arrays EsparsosDesafioQuiz
- 04Recapitulação - Workshop de ArraysDesafio
Métodos Avançados de Array
9 lições761- 01Os Métodos Join & SplitQuiz
- 02O Método MapDesafioMaestriaQuiz
- 03O Método FilterDesafioQuiz
- 04O Método ReduceDesafioQuiz
- 05Encadeamento de Métodos de ArrayDesafioQuiz
- 06ForEach e Map são iguais?Quiz
- 07O Método SortDesafioQuiz
- 08Os Métodos Find & FindIndexQuiz
- 09Recapitulação - O Mestre do EncadeamentoDesafio
Gerenciar Sistema de Festival
Projeto6 lições1- 01Visão Geral do ProjetoDesafio
- 02Adicionar Filmes e LocaisProjeto
- 03Adicionar SessãoProjeto
- 04Comprar IngressosProjeto
- 05Avaliar FilmesProjeto
- 06Cancelar SessõesProjeto
03Seção 3
Introdução ao TypeScript
Introdução ao TypeScript após aprender sobre JavaScriptCOMEÇAR A APRENDERPrimeiros Passos com TS
5 lições232- 01O que é TypeScript?Quiz
- 02Por que usar TypeScript?Quiz
- 03Seu Primeiro Código TypeScriptDesafioQuiz
- 04Processo de Compilação e ErrosQuiz
- 05Recapitulação: Introdução ao TSDesafio
Tipos Principais
7 lições748- 01Tipos Básicos: str, num, booleanDesafioQuiz
- 02O Tipo 'any': Válvula de EscapeDesafioQuiz
- 03O Tipo 'unknown'DesafioQuiz
- 04Trabalhando com 'null' e 'undef'DesafioQuiz
- 05Inferência de Tipo na PráticaDesafioQuiz
- 06Anotações de Tipo ExplícitasDesafioQuiz
- 07Recapitulação: Prática de Tipos PrincipaisDesafio
Estrutura de Dados: Arrays e Tuplas
9 lições862- 01Arrays TipadosDesafioQuiz
- 02Modificador 'readonly' para ArraysDesafioQuiz
- 03O que é uma Tupla?Quiz
- 04Declarando e Acessando TuplasDesafioQuiz
- 05Desestruturando TuplasDesafioQuiz
- 06Tuplas ReadonlyDesafioQuiz
- 07Arrays Tipados MultidimensionaisDesafioQuiz
- 08Spread Operator com ArraysDesafioQuiz
- 09Recapitulação: Arrays e TuplasDesafio
Trabalhando com Funções
8 lições855- 01Tipagem de Parâmetros e RetornosDesafioQuiz
- 02Tipagem de Arrow FunctionsDesafioQuiz
- 03O Tipo de Retorno 'void'DesafioQuiz
- 04Parâmetros Opcionais com '?'DesafioQuiz
- 05Valores Padrão de ParâmetrosDesafioQuiz
- 06Tipagem de Rest ParametersDesafioQuiz
- 07Definindo Tipos de FunçõesDesafioQuiz
- 08Recapitulação: Criando Funções TipadasDesafio
Tipos: Aliases, Uniões e Interseções
7 lições751- 01Aliases de Tipos para PrimitivosDesafioQuiz
- 02Tipos de União ('|')DesafioQuiz
- 03Trabalhando com Tipos de UniãoDesafioQuiz
- 04Tipos LiteraisDesafioQuiz
- 05Tipos de Interseção ('&')DesafioQuiz
- 06Combinando Aliases de TiposDesafioQuiz
- 07Recapitulação: Combinações Avançadas de TiposDesafio
Tipagem de Objetos e Interfaces
8 lições757- 01Anotações de Tipo de Objeto InlineDesafioQuiz
- 02Type Aliases para ObjetosDesafioQuiz
- 03Introdução a InterfacesDesafioQuiz
- 04Interfaces vs. Type AliasesQuiz
- 05Props Opcionais e ReadonlyDesafioQuiz
- 06Estendendo Interfaces e TiposDesafioQuiz
- 07Adicionando Métodos a InterfacesDesafioQuiz
- 08Recapitulação: Definindo Formatos de ObjetosDesafio
Projeto: Uma Lista de Tarefas Simples
Projeto6 lições18- 01Projeto: Definindo a Struct de TarefaDesafioQuiz
- 02Função para Adicionar uma TarefaProjeto
- 03Função para Alterar o Status da TarefaProjeto
- 04Função: Listar Tarefas por StatusProjeto
- 05Função: Imprimir Resumo das TarefasProjeto
- 06Juntando TudoProjeto
Enums
6 lições638- 01O que é um Enum Numérico?DesafioQuiz
- 02Usando Enums NuméricosDesafioQuiz
- 03O que é um Enum de String?DesafioQuiz
- 04Usando Enums de StringDesafioQuiz
- 05Enums HeterogêneosDesafioQuiz
- 06Recapitulação: Usando EnumsDesafio
Generics: Uma Primeira Olhada
6 lições537- 01O Problema que Generics ResolvemQuiz
- 02Criando uma Função de Identidade GenéricaDesafioQuiz
- 03Usando uma Função GenéricaDesafioQuiz
- 04Arrays GenéricosDesafioQuiz
- 05Interfaces GenéricasDesafioQuiz
- 06Recapitulação: Prática de Funções GenéricasDesafio
Projeto: Gerenciamento de Inventário
Projeto5 lições18- 01Projeto: Item de Inventário GenéricoDesafioQuiz
- 02Função: Adicionar Itens ao InventárioProjeto
- 03Função para Buscar um Item por IDProjeto
- 04Criar Tipo de Inventário EspecíficoProjeto
- 05Função para Obter Detalhes do ItemProjeto
Tópicos Avançados
6 lições642- 01Asserções de TipoDesafioQuiz
- 02Type Guards: in & instanceofDesafioQuiz
- 03O Tipo 'never'DesafioQuiz
- 04Tipos Anuláveis ('strictNull')DesafioQuiz
- 05Assinaturas de Índice para ObjetosDesafioQuiz
- 06Recapitulação: Refinando TiposDesafio
04Seção 4
Programação Orientada a Objetos
Descubra como organizar o código com classes, objetos e estruturas reutilizáveisCOMEÇAR A APRENDERObjetos e a Palavra-chave this
6 lições642- 01Revisão Rápida: ObjetosDesafioQuiz
- 02Adicionando Métodos a ObjetosDesafioQuiz
- 03Entendendo a Palavra-chave thisDesafioQuiz
- 04Funções ConstrutorasDesafioQuiz
- 05A Palavra-chave newDesafioQuiz
- 06Desafio de RecapitulaçãoDesafio
Organizando o Código
4 lições434- 01O que são Módulos?DesafioQuiz
- 02Exportando com exportDesafioQuiz
- 03Importando com importDesafioQuiz
- 04Exportações Default vs. NomeadasDesafioQuiz
Classes e Objetos
4 lições426- 01O que é uma Classe?DesafioQuiz
- 02Criando InstânciasDesafioQuiz
- 03Propriedades e MétodosDesafioQuiz
- 04Desafio de RevisãoDesafio
Métodos e Gerenciamento de Estado
2 lições218- 01Métodos que modificam o estadoDesafioQuiz
- 02Padrão de encadeamento de métodosDesafioQuiz
Encapsulamento e Acesso
4 lições426- 01EncapsulamentoDesafioQuiz
- 02Campos de Classe Públicos e PrivadosDesafioQuiz
- 03Métodos PrivadosDesafioQuiz
- 04Desafio de RecapitulaçãoDesafio
Projeto: Uma Conta Bancária Simples
Projeto3 lições1- 01Classe BankAccountDesafio
- 02Depósitos e SaquesProjeto
- 03Saldo como Campo PrivadoProjeto
Herança e a palavra-chave extends
6 lições645- 01HerançaDesafioQuiz
- 02A relação "é um"DesafioQuiz
- 03A palavra-chave extendsDesafioQuiz
- 04O método super()DesafioQuiz
- 05Herdando propriedades e métodosDesafioQuiz
- 06Desafio de recapitulaçãoDesafio
Organizando Código POO
1 lição19- 01Organizar Classes em MódulosDesafioQuiz
Métodos e Propriedades Estáticos
4 lições425- 01Nível de Classe vs. Nível de InstânciaDesafioQuiz
- 02Propriedades EstáticasDesafioQuiz
- 03Métodos Utilitários EstáticosDesafioQuiz
- 04Desafio de RecapitulaçãoDesafio
Polimorfismo
4 lições425- 01O que é Polimorfismo?DesafioQuiz
- 02Sobrescrevendo Métodos HerdadosDesafioQuiz
- 03Usando superDesafioQuiz
- 04Desafio de RecapitulaçãoDesafio
Projeto: Um Renderizador de Formas
Projeto4 lições1- 01Configuração: Classe Shape e ExportaçãoDesafio
- 02Herança da Classe CircleProjeto
- 03Sobrescrita e Método AreaProjeto
- 04Contador de Formas EstáticoProjeto
Getters e Setters
4 lições426- 01As Palavras-chave get e setDesafioQuiz
- 02Propriedades ComputadasDesafioQuiz
- 03Validação e Efeitos ColateraisDesafioQuiz
- 04Desafio de RevisãoDesafio
Composição vs. Herança
3 lições328- 01A relação "tem um" vs. "é um"DesafioQuiz
- 02Os limites da herança profundaDesafioQuiz
- 03Construindo objetosDesafioQuiz
Sistema de Gerenciamento de Biblioteca
Projeto3 lições1- 01Projetando a BibliotecaDesafio
- 02Classe Livro com ComposiçãoProjeto
- 03Validação do Autor do LivroProjeto
Desafios Finais
4 lições4- 01Construtor de Personagens de JogoDesafio
- 02Sistema de Produtos de E-commerceDesafio
- 03Sistema de Gestão UniversitáriaDesafio
- 04Sistema de Dispositivos de Casa InteligenteDesafio
Por que aprender JavaScript com a Coddy
- Curso de JavaScript online e grátis: sem instalação, sem configurar ferramentas e sem barreiras para começar. Abra o navegador e pratique desde a primeira aula.
- Aulas práticas de JavaScript que vão além de um tutorial: cada conceito vem com um desafio para escrever código real e aprender fazendo.
- As dicas de IA ajudam quando você trava em um exercício de JavaScript, mostrando o próximo passo sem entregar a resposta completa.
- Certificado grátis de conclusão para compartilhar no LinkedIn ou adicionar ao currículo como prova de que você completou um curso interativo de JavaScript.
Perguntas frequentes sobre aprender JavaScript
JavaScript é fácil de aprender?
Sim, você pode começar com JavaScript mesmo sem experiência. A Coddy divide os conceitos em exercícios curtos para você entender a sintaxe, praticar variáveis, condicionais, loops, funções, estruturas de dados e organização de projetos e ganhar confiança aos poucos.
Quanto tempo leva para aprender JavaScript?
Os fundamentos de JavaScript geralmente podem ser aprendidos em uma ou duas semanas de prática diária. Para criar projetos reais com segurança, reserve de um a três meses, dependendo do seu ritmo.
Onde posso aprender JavaScript online grátis?
A Coddy oferece um curso online grátis de JavaScript com aulas, desafios de código, quizzes e projetos. Não é preciso instalar nada: tudo funciona no navegador.
Como aprender JavaScript rápido?
A forma mais rápida é praticar todos os dias. Na Coddy você alterna explicação curta, exercício imediato e feedback com dicas de IA, passando mais tempo escrevendo JavaScript do que assistindo a vídeos longos.
Recebo um certificado de JavaScript ao terminar?
Sim. Ao concluir o curso de JavaScript na Coddy, você recebe um certificado grátis de conclusão para compartilhar no LinkedIn ou incluir no currículo.
O que posso criar depois de aprender JavaScript?
Depois do curso, você poderá criar scripts úteis, pequenos apps, automações, jogos simples e projetos para mostrar no portfólio. Também terá uma base sólida para avançar para tópicos mais profissionais.