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.
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 perguntaSem alternativas para chutar: você escreve, a IA corrige com a rubrica do tópico e diz em que nível sua resposta está.
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.