Pular para o conteúdo

Trilha de estudo

Trilha JavaScript & TypeScript: tudo o que estudar, tópico por tópico

Avaliação abrangente de JS/TS desde mecânicas fundamentais da linguagem até programação em nível de tipos avançada, internos do runtime e padrões especialistas de metaprogramação.

Resposta curta

Para aprender JavaScript & TypeScript, percorra 6 módulos e 39 tópicos na ordem em que um apoia o próximo. Comece por Fundamentos de JS e siga para JavaScript Moderno e TypeScript Essencial. Use o mapa como checklist, ou meça seu nível e estude só o que falta.

6
módulos
39
tópicos
45
min para avaliar

O que você vai estudar

Os tópicos estão agrupados por módulo. Abra um para ver os objetivos e os conceitos-chave.

1 · Fundamentos de JS8 tópicos
  • Variáveis e Escopo

    var/let/const, hoisting, escopo de bloco, escopo de função, temporal dead zone e cadeia de escopo

    Objetivos

    • Explicar hoisting e a temporal dead zone
    • Escolher a declaração de variável correta para cada cenário

    Conceitos-chave

    • var
    • let
    • const
    • hoisting
    • escopo de bloco
    • temporal dead zone
    • cadeia de escopo
  • Funções e Closures

    Declarações de função, expressões, arrow functions, closures, IIFE e funções de ordem superior

    Objetivos

    • Explicar como closures capturam variáveis
    • Utilizar funções de ordem superior de forma eficaz

    Conceitos-chave

    • closure
    • arrow function
    • IIFE
    • função de ordem superior
    • escopo léxico
    • callback
  • Prototypes e this

    Cadeia de prototypes, Object.create, funções construtoras, regras de vinculação do this e sintaxe de class

    Objetivos

    • Rastrear buscas na cadeia de prototypes
    • Prever o valor de this em diferentes contextos

    Conceitos-chave

    • cadeia de prototypes
    • __proto__
    • Object.create
    • palavra-chave new
    • vinculação do this
    • call/apply/bind
    • sintaxe de class
  • DOM e Eventos

    Travessia do DOM, manipulação, bubbling/capturing de eventos, delegação e requestAnimationFrame

    Objetivos

    • Explicar as fases de propagação de eventos
    • Implementar padrões de delegação de eventos

    Conceitos-chave

    • API do DOM
    • event bubbling
    • event capturing
    • delegação de eventos
    • stopPropagation
    • preventDefault
    • requestAnimationFrame
  • Tipos de Dados em Profundidade

    Tipos primitivos, tipo object, operador typeof, null vs undefined, Symbol, BigInt, coerção de tipos e valores truthy/falsy

    Objetivos

    • Distinguir todos os tipos primitivos dos tipos de objeto
    • Prever resultados de coerção de tipos em expressões

    Conceitos-chave

    • tipos primitivos
    • tipo object
    • operador typeof
    • null vs undefined
    • Symbol
    • BigInt
    • coerção de tipos
    • truthy e falsy
  • Igualdade e Comparações

    == vs ===, Object.is(), coerção de tipos em comparações, igualdade de NaN e igualdade por referência vs por valor

    Objetivos

    • Prever resultados de == e === para tipos mistos
    • Explicar quando Object.is() difere de ===

    Conceitos-chave

    • == vs ===
    • Object.is()
    • coerção de tipos em comparações
    • igualdade de NaN
    • igualdade por referência vs por valor
    • algoritmo de igualdade abstrata
    • igualdade estrita
  • Operadores

    Aritméticos, lógicos, nullish coalescing (??), optional chaining (?.), spread, destructuring, ternário e operadores bitwise

    Objetivos

    • Aplicar nullish coalescing e optional chaining corretamente
    • Distinguir OR lógico de nullish coalescing para valores padrão

    Conceitos-chave

    • operadores aritméticos
    • operadores lógicos
    • nullish coalescing (??)
    • optional chaining (?.)
    • operador spread
    • atribuição por destructuring
    • operador ternário
    • operadores bitwise
  • Strict Mode

    Diretiva 'use strict', strict implícito em módulos, erros silenciosos eliminados, this no strict mode e palavras reservadas

    Objetivos

    • Explicar o que o strict mode previne e por que é importante
    • Identificar código que se comporta diferente no strict mode

    Conceitos-chave

    • diretiva 'use strict'
    • strict implícito em módulos
    • erros silenciosos eliminados
    • this no strict mode
    • variáveis não declaradas
    • parâmetros duplicados
    • palavras reservadas
2 · JavaScript Moderno7 tópicos
  • Funcionalidades ES6+

    Destructuring, spread/rest, template literals, symbols, iterators, generators e optional chaining

    Objetivos

    • Aplicar destructuring e spread em código real
    • Utilizar generators e iterators corretamente

    Conceitos-chave

    • destructuring
    • operador spread
    • parâmetros rest
    • template literals
    • Symbol
    • protocolo iterator
    • generator
    • optional chaining
  • Promises e Async/Await

    Ciclo de vida de Promise, encadeamento, Promise.all/allSettled/race, async/await e propagação de erros

    Objetivos

    • Rastrear a ordem de resolução de promises
    • Tratar erros corretamente em código assíncrono

    Conceitos-chave

    • Promise
    • then/catch/finally
    • Promise.all
    • Promise.allSettled
    • Promise.race
    • async/await
    • fila de microtasks
  • Módulos e Bundling

    ES modules, CommonJS, import dinâmico, tree shaking, code splitting e configuração de bundlers

    Objetivos

    • Comparar a semântica de ES modules e CommonJS
    • Configurar tree shaking e code splitting

    Conceitos-chave

    • ES modules
    • CommonJS
    • import() dinâmico
    • tree shaking
    • code splitting
    • webpack
    • Vite
    • barrel files
  • Tratamento de Erros

    try/catch/finally, erros customizados, tratamento de erros assíncronos, error boundaries e handlers globais

    Objetivos

    • Projetar tratamento robusto de erros para fluxos assíncronos
    • Criar hierarquias de erros customizadas

    Conceitos-chave

    • try/catch/finally
    • classes de Error customizadas
    • unhandledrejection
    • error boundaries
    • padrão Result
    • programação defensiva
  • Palavra-chave this

    this no contexto global, contexto de método, this em arrow function, bind/call/apply, this no construtor e this em event handlers

    Objetivos

    • Prever o valor de this em qualquer contexto
    • Corrigir bugs relacionados a this usando bind, call ou arrow functions

    Conceitos-chave

    • this no contexto global
    • this no contexto de método
    • this em arrow function
    • bind/call/apply
    • this no construtor
    • this em event handler
    • this no contexto de class
    • this em callbacks
  • Classes JavaScript

    Sintaxe de class, constructor, extends, super, métodos estáticos, campos privados (#), getters/setters e class vs prototype

    Objetivos

    • Projetar hierarquias de classes usando extends e super
    • Explicar como a sintaxe de class mapeia para prototypes internamente

    Conceitos-chave

    • sintaxe de class
    • método constructor
    • palavra-chave extends
    • chamadas super
    • métodos estáticos
    • campos privados (#)
    • getters e setters
    • class vs prototype
  • Trabalhando com APIs

    Fetch API, XMLHttpRequest, objetos Request/Response, headers e CORS, AbortController, respostas em streaming e FormData

    Objetivos

    • Utilizar a Fetch API com tratamento adequado de erros e consciência de CORS
    • Implementar cancelamento de requisições com AbortController

    Conceitos-chave

    • Fetch API
    • XMLHttpRequest
    • objetos Request/Response
    • headers e CORS
    • AbortController
    • respostas em streaming
    • FormData
    • padrões de tratamento de erros
3 · TypeScript Essencial4 tópicos
  • Sistema de Tipos

    Tipagem estrutural, inferência de tipos, unions, intersections, tipos literais e narrowing de tipos

    Objetivos

    • Explicar tipagem estrutural versus nominal
    • Utilizar unions e intersections para modelar domínios

    Conceitos-chave

    • tipagem estrutural
    • inferência de tipos
    • union types
    • intersection types
    • tipos literais
    • narrowing de tipos
    • never
    • unknown
  • Interfaces e Generics

    Declaração de interface, extensão, funções genéricas, restrições de generics e variância

    Objetivos

    • Projetar abstrações genéricas reutilizáveis
    • Aplicar restrições a parâmetros genéricos

    Conceitos-chave

    • interface
    • extends
    • função genérica
    • restrição de generic
    • covariância
    • contravariância
    • parâmetro de tipo padrão
  • Type Guards

    typeof, instanceof, operador in, type predicates customizados, discriminated unions e assertion functions

    Objetivos

    • Implementar type predicates customizados
    • Utilizar discriminated unions para ramificação segura

    Conceitos-chave

    • typeof guard
    • instanceof guard
    • operador in
    • type predicate
    • discriminated union
    • assertion function
    • verificação exaustiva
  • Utility Types

    Partial, Required, Pick, Omit, Record, Readonly, ReturnType e utility types customizados

    Objetivos

    • Selecionar o utility type correto para uma transformação
    • Compor utility types para derivar novos tipos

    Conceitos-chave

    • Partial
    • Required
    • Pick
    • Omit
    • Record
    • Readonly
    • ReturnType
    • utility types customizados
4 · TypeScript Avançado7 tópicos
  • Tipos Condicionais

    Palavra-chave extends em tipos, palavra-chave infer, condicionais distributivos e tipos recursivos

    Objetivos

    • Construir tipos condicionais com infer
    • Compreender o comportamento distributivo sobre unions

    Conceitos-chave

    • tipo condicional
    • palavra-chave infer
    • condicional distributivo
    • tipo recursivo
    • distribuição de tipos
    • filtragem com never
  • Mapped Types

    keyof, operador in em tipos, template literal types, remapeamento de chaves e transformações profundas

    Objetivos

    • Criar mapped types que transformam formatos de objetos
    • Utilizar template literal types para manipulação de strings

    Conceitos-chave

    • mapped type
    • keyof
    • template literal type
    • remapeamento de chaves
    • deep Partial
    • modificadores (+/- readonly/optional)
  • Arquivos de Declaração

    Criação de .d.ts, module augmentation, declarações globais, ambient modules e DefinitelyTyped

    Objetivos

    • Escrever arquivos de declaração para bibliotecas sem tipagem
    • Estender tipos de módulos existentes com segurança

    Conceitos-chave

    • arquivos .d.ts
    • palavra-chave declare
    • module augmentation
    • global augmentation
    • ambient module
    • DefinitelyTyped
    • diretivas triple-slash
  • Configuração do Compilador

    tsconfig.json, flags do strict mode, referências de projeto, path aliases e builds incrementais

    Objetivos

    • Configurar tsconfig para monorepos grandes
    • Explicar o impacto de cada flag do strict mode

    Conceitos-chave

    • tsconfig.json
    • strict mode
    • strictNullChecks
    • referências de projeto
    • path aliases
    • builds incrementais
    • projetos compostos
  • Decorators do TypeScript

    Sintaxe de decorator (@), decorators de classe/método/propriedade/parâmetro, decorator factories, reflexão de metadados e decorators stage 3

    Objetivos

    • Implementar decorators customizados para preocupações transversais
    • Explicar a diferença entre decorators legados e stage 3

    Conceitos-chave

    • sintaxe de decorator (@)
    • decorators de classe
    • decorators de método
    • decorators de propriedade
    • decorators de parâmetro
    • decorator factories
    • reflexão de metadados
    • decorators stage 3
  • Módulos e Namespaces do TypeScript

    ES modules no TS, arquivos de declaração (.d.ts), palavra-chave namespace, module augmentation, declarações ambient e barrel exports

    Objetivos

    • Organizar código TypeScript com módulos e namespaces adequadamente
    • Configurar path aliases e barrel exports para projetos grandes

    Conceitos-chave

    • ES modules no TS
    • arquivos de declaração (.d.ts)
    • palavra-chave namespace
    • module augmentation
    • declarações ambient
    • diretivas triple-slash
    • barrel exports
    • path aliases
  • Build e Ecossistema TypeScript

    tsconfig.json, opções de strict mode, ESLint com TS, Prettier, ferramentas de build (tsc, esbuild, swc), referências de projeto e compilação incremental

    Objetivos

    • Configurar um projeto TypeScript com ferramentas de build modernas
    • Escolher a ferramenta de build adequada para diferentes requisitos de projeto

    Conceitos-chave

    • tsconfig.json
    • opções de strict mode
    • ESLint com TS
    • integração com Prettier
    • ferramentas de build (tsc, esbuild, swc)
    • referências de projeto
    • declaration maps
    • compilação incremental
5 · Runtime e Desempenho4 tópicos
  • Event Loop

    Call stack, fila de tarefas, fila de microtasks, temporização de requestAnimationFrame e fases do event loop no Node.js

    Objetivos

    • Prever a ordem de execução entre filas
    • Explicar as fases do event loop do Node.js

    Conceitos-chave

    • call stack
    • fila de tarefas
    • fila de microtasks
    • requestAnimationFrame
    • queueMicrotask
    • fases do Node.js
    • setImmediate vs setTimeout
  • Gerenciamento de Memória

    Coleta de lixo, vazamentos de memória, WeakRef, FinalizationRegistry, heap snapshots e profiling

    Objetivos

    • Identificar padrões comuns de vazamento de memória
    • Utilizar WeakRef e WeakMap para prevenir vazamentos

    Conceitos-chave

    • coleta de lixo
    • mark-and-sweep
    • padrões de vazamento de memória
    • WeakRef
    • WeakMap
    • FinalizationRegistry
    • heap snapshot
  • Web Workers

    Workers dedicados, shared workers, service workers, objetos transferíveis e pools de threads de worker

    Objetivos

    • Escolher o tipo correto de worker para cada caso de uso
    • Otimizar a transferência de dados entre threads

    Conceitos-chave

    • Web Worker
    • SharedWorker
    • Service Worker
    • postMessage
    • objetos transferíveis
    • structured clone
    • worker_threads (Node.js)
  • Otimização V8

    Hidden classes, inline caching, níveis de compilação JIT, gatilhos de desotimização e profiling de desempenho

    Objetivos

    • Escrever código que possibilita otimizações do V8
    • Identificar padrões que causam desotimização

    Conceitos-chave

    • hidden classes
    • inline caching
    • Turbofan
    • Sparkplug
    • desotimização
    • chamadas monomórficas
    • profiling de desempenho
6 · Padrões Especialistas9 tópicos
  • Metaprogramação

    Proxy, Reflect, Symbol.toPrimitive, decorators e padrões de geração de código em runtime

    Objetivos

    • Construir sistemas reativos com Proxy
    • Aplicar decorators para preocupações transversais

    Conceitos-chave

    • Proxy
    • Reflect
    • handler traps
    • Symbol.toPrimitive
    • decorators (TC39)
    • geração de código em runtime
  • Padrões Assíncronos Avançados

    Iteradores assíncronos, AbortController, concorrência estruturada, backpressure e padrões de observable

    Objetivos

    • Implementar operações assíncronas canceláveis
    • Projetar pipelines de dados com controle de backpressure

    Conceitos-chave

    • iterador assíncrono
    • for-await-of
    • AbortController
    • AbortSignal
    • concorrência estruturada
    • backpressure
    • observable
  • Programação em Nível de Tipos

    Tipos condicionais recursivos, aritmética em nível de tipos, emulação de HKTs e branded types

    Objetivos

    • Construir utilitários recursivos em nível de tipos
    • Emular higher-kinded types em TypeScript

    Conceitos-chave

    • tipo condicional recursivo
    • aritmética em nível de tipos
    • emulação de HKT
    • branded/opaque types
    • tipos de tupla variádicos
    • parsing de template literal
  • Plugins e Ferramentas do Compilador

    API do compilador TypeScript, transformers customizados, manipulação de AST, plugins de language service e codemods

    Objetivos

    • Escrever transformers customizados para TypeScript
    • Construir codemods para refatorações em larga escala

    Conceitos-chave

    • ts.Program
    • transformer customizado
    • manipulação de AST
    • plugin de language service
    • ts-morph
    • codemods
    • plugins do Babel
  • Internos do V8 e Otimização JIT

    Compreensão das hidden classes, inline caches e pipeline de compilação JIT do V8 para escrever JavaScript otimizado para JIT

    Objetivos

    • Explicar como hidden classes do V8 afetam o desempenho de acesso a propriedades
    • Identificar padrões de código que causam desotimização JIT

    Conceitos-chave

    • hidden classes
    • ICs monomórficos vs polimórficos
    • compilação JIT
    • desotimização
    • Turbofan
    • Ignition
    • shapes/maps
  • Sistema de Tipos Avançado do TypeScript

    Tipos condicionais, mapped types, template literal types, palavra-chave infer e programação em nível de tipos

    Objetivos

    • Utilizar a palavra-chave infer dentro de tipos condicionais para extrair componentes de tipos
    • Construir um utilitário type-safe usando template literal e mapped types

    Conceitos-chave

    • tipos condicionais
    • mapped types
    • infer
    • template literal types
    • tipos de tupla variádicos
    • condicionais distributivos
    • type predicates
  • Module Federation e Micro-Frontends

    Implementação de arquiteturas micro-frontend usando Webpack Module Federation e gerenciamento de dependências compartilhadas

    Objetivos

    • Configurar uma aplicação host e remote usando Webpack Module Federation
    • Gerenciar versões de dependências compartilhadas para prevenir conflitos em runtime

    Conceitos-chave

    • plugin Module Federation
    • aplicações remote e host
    • módulos compartilhados
    • conflitos de versão
    • integração em runtime
    • compartilhamento em build-time vs runtime
  • Internos de Ferramentas de Build (Vite/esbuild)

    Compreensão de como bundlers modernos como Vite e esbuild funcionam: sistemas de plugins, tree-shaking e code splitting

    Objetivos

    • Explicar por que o Vite usa ESM nativamente em dev e Rollup em produção
    • Escrever um plugin simples de esbuild para transformar um tipo de arquivo customizado

    Conceitos-chave

    • ESM nativo em dev
    • tree shaking
    • code splitting
    • API de plugins do Rollup
    • plugins do esbuild
    • protocolo HMR
    • análise de bundle
  • Segurança JavaScript em Profundidade

    Prototype pollution, configuração de CSP, sinks de DOM XSS, ataques à cadeia de suprimentos e padrões de codificação segura em JS/TS

    Objetivos

    • Identificar e mitigar vulnerabilidades de prototype pollution em bibliotecas JS
    • Configurar uma Content Security Policy para prevenir XSS baseado em DOM

    Conceitos-chave

    • prototype pollution
    • diretivas CSP
    • sinks de DOM XSS
    • Object.freeze
    • riscos na cadeia de suprimentos
    • Subresource Integrity
    • evitar eval

Níveis: Júnior, Pleno, Sênior e Especialista

Explique com suas palavras

Corrigido por IA · sem cadastro · 1 pergunta

Sem alternativas para chutar: você escreve, a IA corrige com a rubrica do tópico e diz em que nível sua resposta está.

0 / 600

Já estuda JavaScript & TypeScript?

A avaliação mede tópico por tópico, e o plano pula o que você já sabe.

Aberto para ler. A conta só é necessária para ser medido.

Perguntas frequentes

Por onde começar a estudar JavaScript & TypeScript?

Comece por Fundamentos de JS: Variáveis e Escopo, Funções e Closures e Prototypes e this. O mapa ordena os tópicos pelo que depende de quê, então cada um prepara o seguinte.

Quanto tempo leva uma avaliação completa de JavaScript & TypeScript?

Uma avaliação completa desta trilha leva cerca de 45 minutos. O tempo de estudo depende de onde você começa; o diagnóstico mostra quais tópicos você pode pular.

Preciso de conta para usar esta página?

Não. O mapa, os objetivos e os conceitos-chave são abertos. A conta só é necessária para ser medido, ver seu gap por tópico e receber um plano.