JavaScript Intermediário: Funções, Closures e Assincronismo
- Nível: Intermediário
- Módulos: 8
- Aulas: 18
- Tempo de leitura: 9h 40min
- Tecnologias: JavaScript
- Preço: Gratuito
Código do curso: github.com/johnpires/js-intermediario-projeto-final
Dê um salto de qualidade no seu domínio do JavaScript com este curso intermediário, projetado para desenvolvedores que já conhecem os fundamentos da linguagem e querem se aprofundar nos conceitos que realmente fazem a diferença no mercado de trabalho. Aqui você vai entender como o JavaScript funciona por dentro — o modelo de execução, o event loop, o escopo léxico e os mecanismos de herança baseados em protótipos.
Ao longo do curso, você vai explorar temas como closures, funções de alta ordem, orientação a objetos com classes ES6, programação assíncrona com Promises e async/await, manipulação avançada de arrays e objetos, além de padrões modernos de organização de código com módulos ES. Cada conceito é ensinado com exemplos práticos e contextualizados, refletindo situações reais do desenvolvimento web.
O curso é finalizado com um projeto completo: uma aplicação de gerenciamento de tarefas com operações assíncronas, persistência de dados e uma interface de linha de comando. Ao concluir, você estará preparado para escrever JavaScript profissional, entender código de terceiros com mais facilidade e avançar com confiança para frameworks modernos como React, Vue ou Node.js.
O que você vai aprender
Ao final deste curso, você será capaz de:
- Compreender o modelo de execução do JavaScript, incluindo call stack, event loop e fila de callbacks
- Utilizar closures para criar funções com estado privado e fábricas de funções
- Aplicar funções de alta ordem como map, filter, reduce e implementar as suas próprias
- Criar e organizar código com orientação a objetos usando classes ES6 e herança via protótipos
- Escrever código assíncrono moderno utilizando Promises encadeadas e async/await
- Tratar erros de forma robusta em fluxos assíncronos complexos
- Manipular arrays e objetos de forma declarativa e eficiente
- Organizar projetos JavaScript com módulos ES (import/export)
- Construir uma aplicação completa aplicando todos os conceitos do curso
Pré-requisitos
Para aproveitar ao máximo este curso, você precisa ter familiaridade com os fundamentos do JavaScript: variáveis (var, let, const), tipos de dados, operadores, estruturas condicionais (if/else, switch), laços de repetição (for, while), funções básicas e manipulação simples do DOM. Recomenda-se ter concluído um curso introdutório de JavaScript ou possuir experiência equivalente de pelo menos alguns meses desenvolvendo projetos simples com a linguagem.
Conteúdo do curso
Módulo 1: Funções Avançadas: Escopo, Hoisting e Contexto
Aprofunde-se no funcionamento interno das funções JavaScript, entendendo escopo léxico, hoisting, e o comportamento do this em diferentes contextos.
- Escopo Léxico e Cadeia de Escopos (30 min)
- Hoisting: Içamento de Variáveis e Funções (25 min)
- O this em JavaScript: Contexto de Execução (35 min)
Módulo 2: Closures e Funções de Alta Ordem
Explore closures para encapsular estado e implemente funções de alta ordem como map, filter e reduce para escrever código mais expressivo.
- Closures: Funções que Lembram (35 min)
- Funções de Alta Ordem: map, filter e reduce (40 min)
- Currying e Composição de Funções (30 min)
Módulo 3: Orientação a Objetos com JavaScript Moderno
Domine classes ES6, herança, encapsulamento e os padrões modernos de orientação a objetos no JavaScript.
- Classes ES6: Sintaxe e Fundamentos (35 min)
- Herança e Polimorfismo com extends e super (30 min)
Módulo 4: Programação Assíncrona: Callbacks e Promises
Entenda o event loop, aprenda a lidar com operações assíncronas usando callbacks e domine o sistema de Promises do JavaScript.
- O Event Loop e o Modelo Assíncrono do JavaScript (30 min)
- Promises: Fundamentos e Encadeamento (40 min)
Módulo 5: Async/Await e Tratamento de Erros Assíncronos
Escreva código assíncrono legível como síncrono com async/await e aprenda a tratar erros em fluxos assíncronos complexos.
- Async/Await: Código Assíncrono Legível (35 min)
- Estratégias de Tratamento de Erros Assíncronos (30 min)
Módulo 6: Manipulação Avançada de Arrays e Objetos
Domine desestruturação, spread, rest, iteradores e métodos avançados para transformar e navegar em estruturas de dados complexas.
- Desestruturação, Spread e Rest (30 min)
- Métodos Avançados de Array e Manipulação de Objetos (30 min)
Módulo 7: Módulos ES e Organização de Código
Aprenda a organizar projetos JavaScript com módulos ES nativos, importações dinâmicas e boas práticas de estruturação de código.
- Módulos ES: import e export (30 min)
Módulo 8: Projeto Final: Gerenciador de Tarefas Assíncrono
Construa uma aplicação completa de gerenciamento de tarefas aplicando closures, classes, async/await, módulos e manipulação de dados.
- Planejamento e Arquitetura do Projeto (20 min)
- Implementando o Modelo, Repositório e Serviço (40 min)
- CLI e Integração Final do Projeto (35 min)