Destino Dev

Cursos

JavaScript Intermediário: Funções, Closures e Assincronismo

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:

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.

  1. Escopo Léxico e Cadeia de Escopos (30 min)
  2. Hoisting: Içamento de Variáveis e Funções (25 min)
  3. 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.

  1. Closures: Funções que Lembram (35 min)
  2. Funções de Alta Ordem: map, filter e reduce (40 min)
  3. 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.

  1. Classes ES6: Sintaxe e Fundamentos (35 min)
  2. 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.

  1. O Event Loop e o Modelo Assíncrono do JavaScript (30 min)
  2. 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.

  1. Async/Await: Código Assíncrono Legível (35 min)
  2. 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.

  1. Desestruturação, Spread e Rest (30 min)
  2. 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.

  1. 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.

  1. Planejamento e Arquitetura do Projeto (20 min)
  2. Implementando o Modelo, Repositório e Serviço (40 min)
  3. CLI e Integração Final do Projeto (35 min)