Prévia Markdown
Guia de Referência: JavaScript Moderno para IA
Visualização renderizada do arquivo tecnologias/javascript-moderno.md. O conteúdo abaixo é o mesmo arquivo destinado a orientar a IA.
Guia de Referência: JavaScript Moderno para IA
Referência operacional de JavaScript moderno baseada na documentação MDN e no Modern JavaScript Tutorial. O foco é ensinar a IA a distinguir a linguagem JavaScript das APIs do ambiente e a produzir código previsível, testável e seguro.
1. Contrato de execução para a IA
- Trate este arquivo como referência de decisão e implementação, não como licença para aplicar toda tecnologia disponível.
- Antes de codificar, declare o ambiente (browser, Node.js, worker, servidor, PWA etc.), os requisitos e as restrições de compatibilidade.
- Prefira a solução nativa e simples quando ela atende aos requisitos com boa acessibilidade, segurança e manutenção.
- Consulte compatibilidade antes de usar APIs experimentais ou de disponibilidade limitada.
- Não misture responsabilidades: estrutura/semântica em HTML, apresentação em CSS, comportamento em JavaScript e capacidades do navegador em Web APIs.
- Considere segurança, privacidade, performance e acessibilidade desde o design, não como correções finais.
2. Fundamentos da linguagem
Tipos e valores
- Conceito: Primitivos, objetos,
null,undefined,NaN,BigInt,Symbole coerção. - Regra para IA: Use
===/!==por padrão, explicite conversões quando o domínio exigir e não confundanullcom ausência não inicializada.
Variáveis e escopo
- Conceito:
const,let, escopo léxico, temporal dead zone e closures. - Regra para IA: Use
constpor padrão eletquando houver reatribuição; evitevarem código novo salvo interoperabilidade deliberada.
Operadores e controle de fluxo
- Conceito: Aritmética, comparação, lógicos,
??,?., ternário, loops eswitch. - Regra para IA: Prefira fluxo legível e guard clauses; não comprima regras complexas em expressões difíceis de revisar.
Funções
- Conceito: Declarações, expressions, arrow functions, parâmetros default/rest, spread e funções de ordem superior.
- Regra para IA: Escolha arrow quando não precisar de
this/argumentspróprios; dê nomes que expressem intenção e mantenha responsabilidade única.
3. Objetos, protótipos e classes
Objetos
- Conceito: Propriedades, descriptors, getters/setters, destructuring, spread, optional chaining.
- Regra para IA: Modele dados coesos; não use objetos genéricos gigantes como estado global.
Protótipos
- Conceito: Cadeia de protótipos e herança prototípica.
- Regra para IA: Entenda o mecanismo mesmo quando usar
class; evite modificar prototypes globais de objetos nativos.
Classes
- Conceito:
class, constructor, fields, private fields, static, extends/super. - Regra para IA: Favoreça composição quando herança cria acoplamento; mantenha invariantes dentro do objeto.
4. Coleções e iteração
Arrays
- Conceito: Métodos imutáveis/mutáveis, map/filter/reduce/find/some/every/sort.
- Regra para IA: Escolha o método que comunica a intenção; cuidado com
sort()mutável e comparadores.
Map e Set
- Conceito: Coleções com chaves/valores e unicidade.
- Regra para IA: Use
Mapquando chaves não são apenas strings ou quando semântica de mapa é importante;Setpara unicidade.
Iterators e generators
- Conceito: Protocolos iterable/iterator e
function*. - Regra para IA: Use quando precisar de iteração lazy, streams lógicos ou sequências customizadas; não complexifique loops simples.
5. Erros e recursos
Exceções
- Conceito:
try/catch/finally,throw, subclasses de Error ecause. - Regra para IA: Capture apenas onde puder recuperar, enriquecer contexto ou converter a falha; não silencie erros.
Gerenciamento de recursos
- Conceito: Cleanup em
finally, AbortController e padrões de descarte. - Regra para IA: Toda operação cancelável/longa deve considerar cancelamento e cleanup de listeners/timers.
6. Assincronicidade
Promises
- Conceito: Estados, chaining,
Promise.all, allSettled, race, any. - Regra para IA: Escolha combinador conforme semântica; trate rejeições e não crie
new Promiseao redor de uma API que já retorna Promise.
async/await
- Conceito: Sintaxe para orquestrar Promises.
- Regra para IA: Use para fluxo legível; execute em paralelo operações independentes em vez de aguardar sequencialmente sem necessidade.
Event loop
- Conceito: Call stack, tasks e microtasks.
- Regra para IA: Evite bloquear a main thread; entenda que Promise callbacks são microtasks e timers não são temporizadores exatos.
7. Módulos
ES Modules
- Conceito:
import/export, named/default exports, dynamic import. - Regra para IA: Prefira ESM; mantenha APIs de módulo pequenas, evite ciclos e use
import()para lazy loading quando houver benefício mensurável.
8. Browser: DOM, eventos e formulários
DOM
- Conceito: Consulta, criação, alteração e remoção de nós.
- Regra para IA: Prefira APIs seguras (
textContent, createElement); eviteinnerHTMLpara conteúdo não confiável.
Eventos
- Conceito: Captura/bubble, delegation,
preventDefault,stopPropagation, custom events. - Regra para IA: Use delegation para listas dinâmicas e preserve comportamento nativo; não pare propagação sem necessidade arquitetural.
Formulários
- Conceito: FormData, constraint validation, input/change/submit e controles.
- Regra para IA: Use validação HTML como primeira camada e validação de negócio/servidor como autoridade.
Carregamento
- Conceito: DOMContentLoaded, load, async/defer, modules.
- Regra para IA: Use
defer/modules para scripts de aplicação e evite bloquear parsing sem motivo.
9. Rede e dados
Fetch
- Conceito: Request/Response/Headers, JSON, erros HTTP, AbortController.
- Regra para IA: Cheque
response.ok, trate timeout/cancelamento e não suponha que status HTTP 4xx/5xx rejeita a Promise.
CORS
- Conceito: Política de origem e headers negociados com servidor.
- Regra para IA: Não “resolva CORS” no front-end; configure a política no servidor correto e com menor permissão.
WebSocket e SSE
- Conceito: Comunicação bidirecional persistente ou eventos unidirecionais do servidor.
- Regra para IA: Escolha conforme direção, reconexão e semântica; implemente backoff e estado de conexão.
Binários e arquivos
- Conceito: ArrayBuffer, typed arrays, Blob, File, streams.
- Regra para IA: Não converta grandes binários desnecessariamente para strings/base64; trabalhe em chunks quando possível.
10. Armazenamento
Web Storage
- Conceito: localStorage/sessionStorage síncronos e por origem.
- Regra para IA: Use apenas para dados pequenos e não sensíveis; não armazene segredos/tokens de alto risco sem modelo de ameaça.
IndexedDB
- Conceito: Banco assíncrono transacional no navegador.
- Regra para IA: Use para dados estruturados/offline maiores; crie migração de schema e tratamento de quota.
11. Web Components
Custom Elements
- Conceito: Elementos HTML definidos pela aplicação.
- Regra para IA: Nome deve conter hífen; mantenha API por atributos/propriedades/eventos clara.
Shadow DOM
- Conceito: Encapsulamento de árvore/estilos.
- Regra para IA: Use quando isolamento traz valor; pense em theming, acessibilidade e composição.
Templates e slots
- Conceito:
template,slote composição declarativa. - Regra para IA: Prefira templates para estruturas reutilizáveis e slots para conteúdo fornecido pelo consumidor.
12. Qualidade, segurança e performance
Segurança
- Conceito: XSS, eval/new Function, URLs, origem e dados não confiáveis.
- Regra para IA: Nunca use
eval/new Functioncom entrada externa; encode/renderize conforme contexto e use APIs DOM seguras.
Testabilidade
- Conceito: Funções puras, seams, injeção de dependência e testes por comportamento.
- Regra para IA: Separe lógica de domínio de DOM/rede para testar sem ambiente pesado.
Performance
- Conceito: Main thread, layout, memória, listeners, batching e lazy loading.
- Regra para IA: Meça com Performance APIs/DevTools; não micro-otimize sem evidência.
Checklist de aceite
- A tecnologia escolhida resolve um requisito real e foi aplicada no ambiente correto.
- Semântica, acessibilidade e estados de teclado/foco foram revisados.
- Entradas externas são tratadas como não confiáveis e saídas são renderizadas com segurança.
- Erros, estados vazios, carregamento, offline/rede e cancelamento foram considerados quando aplicável.
- Compatibilidade e fallback foram avaliados para recursos não Baseline/amplamente suportados.
- O código não duplica APIs nativas ou responsabilidades de outra camada.
- Performance foi medida quando a decisão tem impacto relevante.
Prompt-base para IA
Use o guia "JavaScript Moderno para IA" anexado como contrato técnico.
Analise meu requisito e escolha somente os conceitos necessários.
Diga quais partes do guia serão aplicadas e por quê.
Implemente com semântica, acessibilidade, segurança e compatibilidade.
Não invente APIs.
Ao final, revise a solução pelo checklist do guia.
Contexto: [DESCREVA o sistema, stack/versões, ambiente e estado atual]
Objetivo: [DESCREVA o resultado observável esperado]
Restrições: [DESCREVA o que não pode mudar e os limites técnicos]
Como preencher os campos
- Contexto: descreva sistema, stack/versões, arquitetura ou ambiente, estado atual e onde a mudança acontece.
- Objetivo: descreva o resultado observável esperado — o que o usuário ou o sistema deve conseguir fazer ao final.
- Restrições: descreva o que não pode mudar e os limites de compatibilidade, segurança, acessibilidade, performance, dependências e escopo.
Exemplo preenchido
Contexto: SPA sem framework, usando ES Modules em navegadores modernos e dados JSON obtidos por uma API REST.
Objetivo: Carregar registros com fetch, permitir cancelamento da requisição e exibir estados de carregamento e erro sem bloquear a interface.
Restrições: Sem jQuery; usar APIs nativas; tratar AbortController e erros HTTP; evitar XSS ao inserir dados no DOM.
Fontes primárias
- MDN JavaScript: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript
- Modern JavaScript Tutorial: https://javascript.info/
- Tradução/repositório: https://github.com/javascript-tutorial/pt.javascript.info
Catálogo detalhado de conceitos JavaScript para IA
Esta seção transforma o mapa de estudo em um índice de verificação para geração e revisão de código. A IA deve usar o item como gatilho de decisão, não como obrigação de empregar a funcionalidade.
Fundamentos
- Estrutura do código e statements — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Modo estrito — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Variáveis e constantes — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Tipos de dados — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Conversão de tipos — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Operadores matemáticos — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Comparações e igualdade — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Condicionais if/ternário — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Operadores lógicos — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Nullish coalescing ?? — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Loops while/for — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- switch — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Function Declaration — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Function Expression — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Arrow functions — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- JavaScript specials e semântica básica — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Qualidade de código
- Debugging no navegador — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Estilo de código — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Comentários úteis — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Ninja code como antipadrão — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Testes automatizados — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Polyfills e transpilation — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Objetos — básico
- Criação e propriedades — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Computed properties — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Property shorthand — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Checagem de existência — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- for...in — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Referências e cópia — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Clonagem rasa — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Object.assign — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Garbage collection — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Métodos e this — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Arrow functions e this — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Constructor/new — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Optional chaining — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Symbol — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Conversão objeto→primitivo — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Tipos e coleções
- Métodos de primitive wrappers — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Number — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- String — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Array — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Array methods — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Iterables — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Map e Set — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- WeakMap e WeakSet — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Object.keys/values/entries — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Destructuring — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Date e time — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- JSON parse/stringify — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Funções avançadas
- Recursion e stack — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Rest parameters — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Spread syntax — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Closure — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Lexical Environment — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- var legado — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Global object — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Function object — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Named Function Expression — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- new Function — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- setTimeout/setInterval — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Decorators de função — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- call/apply — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- bind — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Arrow functions revisadas — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Objetos avançados
- Property flags/descriptors — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Getters/setters — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Prototype chain — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- F.prototype — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Native prototypes — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Prototype methods e __proto__ legado — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Classes
- Class syntax — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Class inheritance — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Static properties/methods — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Private/protected properties — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Extending built-ins — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- instanceof — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Mixins — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Erros
- try/catch — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Error objects — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Custom errors — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Error cause — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- finally — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Global/unhandled errors — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Promises e async
- Callbacks — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Promise — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- then/catch/finally — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Promise chaining — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Error handling em promises — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Promise API combinators — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Promisification — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Microtasks — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- async/await — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Top-level await conforme ambiente — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Generators e iteração
- Generators — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Iterable generators — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Async iteration — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Async generators — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Módulos
- Export/import — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Default export — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Re-export — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Dynamic import — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Module scripts no browser — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Ciclos de dependência — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
DOM e documento
- Browser environment — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- DOM tree — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Nodes e node types — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Seletores querySelector — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Node properties — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Attributes vs properties — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Modificação do documento — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Styles/classes — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Element size/scroll — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Window size/scroll — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Coordinates — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- DocumentFragment — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Template cloning — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Eventos
- Event basics — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Event handlers — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Event object — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Bubbling/capturing — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Event delegation — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Browser default actions — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Custom events — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Mouse events — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Pointer events — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Keyboard events — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Scrolling — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Touch/pointer strategy — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Focus events — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Forms
- Form properties/methods — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Input/select/textarea — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- focus/blur — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- change/input — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- cut/copy/paste — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- submit — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- FormData — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Constraint Validation API — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Carregamento e recursos
- DOMContentLoaded — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- load — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- beforeunload — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Scripts async — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Scripts defer — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Module loading — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Resource onload/onerror — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Browser avançado
- MutationObserver — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Selection/Range — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- IntersectionObserver — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- ResizeObserver — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Page visibility — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- History API — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- URL/URLSearchParams — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Fullscreen — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Clipboard — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Frames e janelas
- Popups/windows — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Cross-window communication — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Same-origin policy — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- postMessage — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Clickjacking e proteção — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- iframe sandbox — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Dados binários e arquivos
- ArrayBuffer — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- TypedArray — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- DataView — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- TextEncoder/TextDecoder — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Blob — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- File/FileReader — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Object URLs — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Rede
- Fetch — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Fetch options — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Headers — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- FormData upload — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Download progress via streams — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- AbortController — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- CORS — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- WebSocket — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Server-Sent Events — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Long polling quando necessário — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Storage e offline
- Cookies — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- document.cookie limitações — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- localStorage — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- sessionStorage — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- IndexedDB — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Cache API — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Service Worker — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Storage quotas/persistence — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Animação
- CSS transitions — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- CSS animations — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- requestAnimationFrame — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Web Animations API — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- prefers-reduced-motion — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Web Components
- Custom elements — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Autonomous vs customized built-in — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Shadow DOM — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Template element — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Slots e composition — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Shadow DOM styling — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Events through Shadow DOM — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Lifecycle cleanup — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
RegExp
- Patterns e flags — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Character classes — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Unicode e property escapes — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Anchors — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Sets/ranges — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Quantifiers — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Greedy/lazy — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Capturing groups — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Backreferences — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Alternation — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Lookahead/lookbehind — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Catastrophic backtracking — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Performance e segurança
- Main thread budgeting — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Debounce/throttle quando necessário — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Avoid forced synchronous layout — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Memory leaks/listeners — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Lazy import/loading — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- XSS e DOM sinks — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- eval/new Function como risco — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Prototype pollution awareness — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- Validação de dados de rede — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
- CSP como camada de defesa — ao usar este conceito, declarar por que ele é necessário, em qual ambiente executa, quais efeitos colaterais produz e como será testado.
Regras de seleção para o catálogo
- Se HTML ou CSS nativo resolve o comportamento, não introduza JavaScript apenas para controlar apresentação.
- Se o item é uma Web API, verifique disponibilidade, permissões e contexto seguro antes de usar.
- Para I/O assíncrono, defina timeout/cancelamento, erro e estado de loading.
- Para código de domínio, mantenha dependências de DOM/rede em adaptadores para facilitar testes.
- Para dados não confiáveis, defina validação e sink seguro antes da renderização.