Aprenda JavaScript
Um curso de JavaScript online, grátis e interativo. Você escreve JS em cada aula, com dicas de IA quando você travar e um certificado ao concluir.
257,728+ codders inscritos
- Ideal para iniciantes
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
Seção 1
Fundamentos
Começar seçãoIniciarExpandirRecolherConstrua uma base sólida com conceitos essenciais e habilidades básicasIntrodução
4 lições223- 01A LinguagemDesafio
- 02Olá Mundo!DesafioQuiz
- 03ComentáriosQuiz
- 04Estrutura do CódigoQuiz
Variáveis
7 lições1247- 01NúmerosDesafioMaestriaQuiz
- 02StringDesafioMaestriaQuiz
- 03BooleanoDesafioMaestriaQuiz
- 04Convenções de NomenclaturaDesafioMaestriaQuiz
- 05Variáveis VaziasDesafioQuiz
- 06Recapitulação - Inicializar VariáveisDesafio
- 07ConstantesDesafioMaestriaQuiz
Operadores Parte 1
6 lições1037- 01Operadores AritméticosDesafioMaestriaQuiz
- 02Operador de MóduloDesafioMaestriaQuiz
- 03Atalhos AritméticosDesafioMaestriaQuiz
- 04Operadores de ComparaçãoDesafioMaestriaQuiz
- 05Igualdade Estrita vs Não EstritaDesafioQuiz
- 06Recapitulação - Matemática SimplesDesafio
Operadores Parte 2
5 lições831- 01Operadores Lógicos Parte 1DesafioMaestriaQuiz
- 02Operadores Lógicos Parte 2DesafioMaestriaQuiz
- 03Recapitulação - Lógica SimplesDesafio
- 04Operadores Lógicos Parte 3DesafioMaestriaQuiz
- 05Coerção de TiposDesafioQuiz
Tomada de Decisão
5 lições729- 01Estrutura IfDesafioMaestriaQuiz
- 02If - ElseDesafioMaestriaQuiz
- 03Revisão - Calculadora SimplesDesafio
- 04If - Else AninhadoDesafioQuiz
- 05Estrutura SwitchDesafioQuiz
E/S Básica
6 lições931- 01SaídaDesafioMaestriaQuiz
- 02Saída com VariáveisDesafioMaestriaQuiz
- 03Conversão de Tipos - Parte 1DesafioMaestriaQuiz
- 04Conversão de Tipos - Parte 2DesafioQuiz
- 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
- 02Loop WhileDesafioMaestriaQuiz
- 03BreakDesafioMaestriaQuiz
- 04ContinueDesafioMaestriaQuiz
- 05Recapitulação - FatorialDesafio
- 06Loop Do WhileDesafioMaestriaQuiz
- 07Loops AninhadosDesafioMaestriaQuiz
Funções
8 lições1250- 01Declarar uma FunçãoDesafioMaestriaQuiz
- 02ArgumentosDesafioMaestriaQuiz
- 03RetornoDesafioMaestriaQuiz
- 04Recapitulação - Função SigmaDesafio
- 05Expressão de FunçãoDesafioMaestriaQuiz
- 06Parâmetros PadrãoQuiz
- 07Arrow FunctionsDesafioMaestriaQuiz
- 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
- 04Adicionando o DiferencialProjeto
Arrays Parte 1
6 lições1037- 01Declarando um ArrayDesafioMaestriaQuiz
- 02Acessando Elementos de um ArrayDesafioMaestriaQuiz
- 03Modificando ArraysDesafioQuiz
- 04Métodos de Array Parte 1DesafioMaestriaQuiz
- 05Métodos de Array Parte 2DesafioMaestriaQuiz
- 06Recapitulação - Processador de ArrayDesafio
Arrays Parte 2
8 lições1254- 01Iterando sobre ArraysDesafioQuiz
- 02O Método forEachDesafioQuiz
- 03Loop for...ofDesafioMaestriaQuiz
- 04Recapitulação - Contador de PDesafio
- 05Fatiamento de ArraysDesafioMaestriaQuiz
- 06Métodos de Array Parte 3DesafioMaestriaQuiz
- 07Métodos de Array Parte 4DesafioMaestriaQuiz
- 08Teste de PertencimentoDesafioQuiz
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
- 02Dobrar os ÍmparesDesafio
- 03O Que ComprarDesafio
Seção 2
Lógica & Fluxo
Começar seçãoIniciarExpandirRecolherDesenvolva habilidades de resolução de problemas e crie programas dinâmicos e interativosStrings 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
Seção 3
Introdução ao TypeScriptPágina própria
Começar seçãoIniciarExpandirRecolherIntrodução ao TypeScript após aprender sobre JavaScriptPrimeiros 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
Seção 4
Programação Orientada a Objetos
Começar seçãoIniciarExpandirRecolherDescubra como organizar o código com classes, objetos e estruturas reutilizáveisObjetos 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
Cursos de JavaScript
Cursos práticos de JavaScript, grátis para começar no navegador.
Desafios para Iniciantes - Pratique Conceitos Básicos
PopularColoque seus conhecimentos básicos de programação à prova e tente resolver estes desafios de programação. Use a linguagem que desejar. Bons códigos!
Certificado ao concluir
- 20
- 20
Problemas de Programação
PopularColoque suas habilidades de resolução de problemas de programação à prova com os exercícios de diferentes níveis de dificuldade deste curso. Projetado para programadores com algum conhecimento prévio da sintaxe básica em qualquer linguagem de programação.
Certificado ao concluir
- 32
- 31
Desafios de Programação: Volume 2
Coloque suas habilidades de resolução de problemas de programação à prova com os exercícios de diferentes níveis de dificuldade deste curso. Projetado para programadores com conhecimento prévio da sintaxe básica em qualquer linguagem de programação, este curso é uma extensão do primeiro Desafios de Programação.
Certificado ao concluir
- 25
- 24
Pilha - Série Estruturas de Dados #1
Neste curso, você aprenderá sobre a estrutura de dados Pilha, criará uma Pilha do zero usando sua linguagem preferida e praticará desafios de programação com ela!
- 13
- 6
- 1
Heaps e Filas de Prioridade - Série de Estruturas de Dados #7
NovoNeste curso, você aprenderá sobre a estrutura de dados Heap (a base das filas de prioridade), criará um MinHeap do zero usando sua linguagem preferida e praticará desafios de codificação com ela!
Certificado ao concluir
- 14
- 6
- 1
Bootcamp de Padrões de Estrelas
Coloque suas habilidades de resolução de problemas de programação em prática para aprender a imprimir padrões de estrelas que variam do simples ao complexo, envolvendo diferentes níveis de loops aninhados, estruturas condicionais e cálculos matemáticos.
- 30
- 28
Por que aprender JavaScript com a Coddy
- Rode JavaScript na hora, direto no navegador. Sem instalar Node.js, sem configurar IDE. O editor e a saída ficam lado a lado, então o ciclo de feedback do JavaScript é curto.
- JavaScript moderno: sintaxe ES6+, arrow functions, promises, async/await, destructuring, módulos - o JavaScript que você escreveria no trabalho, sem padrões ultrapassados.
- As dicas de IA ajudam você a depurar um exercício sem entregar a solução, para você construir o modelo mental que torna mais fácil escrever JS no futuro.
- 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.