Plano — Trilha JavaScript (core) — 3 fases

Objetivo

Tecnologia/JavaScript deixa de ser monólito (JavaScript Fundamentals.md) e vira a trilha atômica da linguagem em si, em 3 fases (Iniciado/Adepto/Magus), padrão capítulo de livro. Alvo: prep entrevistas internacionais, eixo frontend-web, perfil Senior Fullstack. É a Onda A, prioridade nº 1 do Roadmap — fecha a base que o índice do TypeScript já referencia e que hoje não existe atomizada.

Tese: JavaScript é uma linguagem dinâmica, single-thread, baseada em protótipos, com coerção e tipagem fraca em runtime — e quase toda armadilha e decisão de design sai dessas propriedades. O eixo da trilha é ir do modelo mental (o que a engine faz com seu código) até execução assíncrona, metaprogramação e o JS moderno (ES2026).

Princípios

Fronteiras (seams)

A regra de ouro: “o que a linguagem é e como eu uso” fica aqui; “como o runtime/ferramenta executa por baixo” é linkado.

TemaFica no JS coreLinka para
Async / event loopsemântica de Promises/async-await, padrões, iterators/generators, modelo de execução em nível de spec (call stack, fila de jobs/microtasks)internals do motor e fases → Runtime e Event Loop
Módulossintaxe ESM da linguagem: import/export, dynamic import(), escopo de módulo, live bindingsresolução, CJS interop, dual packages, bundling → Tooling 06
Tipossistema de tipos em runtime: 7 primitivos + object, typeof, coerção, ==/===, wrapperstipagem estática → TypeScript
APIs de browsernada de DOMDOM, eventos, fetch, storage, Web APIs → Plataforma Web
Testesnada de frameworkVitest/Jest/Testing Library/Playwright → trilha Testes em JS (Onda B)
ES2026Temporal, Explicit Resource Management, features por ano (conteúdo Magus)

Roster (26 notas — 9 / 9 / 8)

🟢 Iniciado — modelo mental e fundamentos (9)

  1. O que é JavaScript — ECMAScript, engines (V8/JSC/SpiderMonkey), parse→JIT, single-thread; o modelo mental da linguagem
  2. Tipos em runtime — os 7 primitivos + object, typeof, wrappers, null vs undefined
  3. Coerção e igualdade== vs ===, truthy/falsy, conversões implícitas, Object.is (clássica de entrevista)
  4. Variáveis e escopovar/let/const, hoisting, TDZ, escopo léxico, block scope
  5. Funções — declaration vs expression vs arrow, params (default/rest), first-class, IIFE
  6. this — as 4 regras de binding, call/apply/bind, arrow vs regular
  7. Objetos — criação, property descriptors, getters/setters, spread, destructuring
  8. Arrays e métodosmap/filter/reduce, mutável vs imutável, iteração
  9. Strings, template literals e regex — manipulação, tagged templates, regex essencial

🟡 Adepto — mecanismos júnior→pleno (9)

  1. Closures — escopo capturado, module pattern, currying/memoização, pitfalls (loop+var)
  2. Prototypes e herança — prototype chain, __proto__ vs prototype, Object.create, class como açúcar
  3. Map, Set, WeakMap, WeakSet — quando usar vs objeto puro; chaves, garbage-collectability
  4. Números, BigInt e precisão — ponto flutuante (IEEE 754), Number vs BigInt, Math, Intl.NumberFormat
  5. Promises — estados, then/catch/finally, encadeamento, propagação de erro
  6. async/await — semântica, try/catch, sequencial vs paralelo, Promise.all/allSettled/race/any
  7. Iterators e generators — protocolo iterable, function*/yield, lazy evaluation, async iterators/for-await-of
  8. Módulos ESMimport/export, named/default, dynamic import(), module scope, live bindings (seam Tooling 06)
  9. Error handling — tipos de Error, custom errors, erros assíncronos, throw vs reject, cause

🔴 Magus — profundidade sênior, runtime-aware, moderno (8)

  1. Modelo de execução a fundo — call stack, a fila de microtasks/jobs da spec, ordem sync→microtask (link Node pras fases do event loop)
  2. Cópia, serialização e imutabilidade — shallow vs deep, JSON (parse/stringify, reviver/replacer), structuredClone, Object.freeze, padrões imutáveis
  3. Memory management — GC (mark-sweep/geracional), reference vs value, leaks comuns, closures e memória, WeakRef/FinalizationRegistry
  4. MetaprogramaçãoProxy, Reflect, Symbol e symbols bem-conhecidos (Symbol.iterator, etc.)
  5. Recursos modernos (ES2020→ES2025) — optional chaining, nullish coalescing, top-level await, Array.prototype recentes, etc.
  6. ES2026 e o futuro — Temporal (e por que o Date legado é quebrado), Explicit Resource Management (using), decorators, status de Records & Tuples
  7. Armadilhas e quirksNaN, ponto flutuante, coerção bizarra, this perdido, typeof null, hoisting surpresa (entrevista)
  8. Capstone — JS na prática + entrevista: decision points, “como explicar em inglês”, mapa de revisão da trilha, perguntas-modelo

Artefatos do domínio

  • Dicionário de JavaScript (type: glossary) — criar; o domínio não tem glossário e JS é denso em termos. Habilita verbetes/lente Conexões no futuro.
  • Biblioteca de JavaScript — já existe; manter.
  • index.md — reescrever como MOC das 3 fases ao fim, preservando os links pra Testes em JavaScript, Validação, Biblioteca, Full Stack Open e a seção “Veja também”.

Execução

  1. Escrever a trilha fresca (com pesquisa), em ondas por fase, revisão entre fases. Criar Dicionário de JavaScript.
  2. Pós-escrita (commit próprio): podar/aposentar JavaScript Fundamentals.md (vira stub que aponta pra trilha, ou removido com inbounds repointados), reescrever index.md como MOC, repointar inbounds (Sendas, índice do TypeScript que cita a base JS). Verificar 0 quebras de wikilink.
  3. Ciclo de qualidade (opcional, como no Tooling): /plantar-duvidas/colher-duvidas no galho; /verificar-wikilinks.

Fora de escopo

  • Frameworks de teste (Vitest/Jest/Playwright) → trilha Testes em JS (Onda B).
  • DOM e APIs de browser → Plataforma Web.
  • Internals do event loop e fases → Node/Runtime e Event Loop.
  • Tipagem estática → TypeScript (pronta).
  • TypeScript-specific (generics, utility types) → TypeScript.

Padrões e referências