🚀 Oferta especial: 60% OFF no CrazyStack - Últimas vagas!Garantir vaga →
REFERÊNCIA TÉCNICA

JavaScript Glossário

Termos Técnicos Essenciais para Generator Functions e Async Programming

Referência completa com definições, exemplos de código e termos relacionados para dominar conceitos avançados de JavaScript.

14 Termos
5 Categorias

Conceitos Fundamentais

Generator Function

Função especial em JavaScript marcada com asterisco (*) que pode pausar e retomar sua execução usando yield. Permite processamento sob demanda e controle fino sobre iteração.

function* myGenerator() { yield 1; yield 2; }
Relacionados: yield, iterator, lazy evaluation

yield

Palavra-chave que pausa a execução de uma generator function e retorna um valor. A execução pode ser retomada chamando .next() no iterator.

yield value; // pausa e retorna 'value'
Relacionados: generator function, next(), iterator

Iterator

Objeto que implementa o protocolo de iteração com método .next() que retorna {value, done}. Permite percorrer sequências de dados.

const iterator = myGenerator(); iterator.next();
Relacionados: generator function, Symbol.iterator, iterable

Symbol.iterator

Symbol bem conhecido que define o método iterator padrão para um objeto. Permite que objetos sejam iteráveis com for...of.

obj[Symbol.iterator] = function* () { yield 1; }
Relacionados: iterable, iterator, for...of

Programação Assíncrona

Async Generator

Generator function que trabalha com operações assíncronas usando async function* e pode yield Promises. Consumido com for await...of.

async function* asyncGen() { yield await fetch('/api'); }
Relacionados: async/await, for await...of, promise

for await...of

Loop que itera sobre objetos async iterable, aguardando cada Promise antes de continuar. Usado com async generators.

for await (const item of asyncGenerator()) { }
Relacionados: async generator, async iterator, await

Iterator Helpers

Iterator Helpers

Métodos como map(), filter(), take() que funcionam com iterators para criar pipelines de transformação sob demanda.

iterator.map(x => x * 2).filter(x => x > 5).take(10)
Relacionados: pipeline, lazy evaluation, map, filter

Pipeline

Sequência de operações de transformação de dados onde saída de uma etapa é entrada da próxima. Comum com iterator helpers.

data.map(transform).filter(validate).take(limit)
Relacionados: iterator helpers, functional programming, composition

Performance & Otimização

Lazy Evaluation

Estratégia onde valores são computados apenas quando necessários, não antecipadamente. Economiza memória e CPU em generators.

// Só processa quando .next() é chamado
Relacionados: generator function, on-demand, memory efficiency

Rate Limiting

Técnica para controlar velocidade de operações, especialmente útil com APIs. Evita ban por excesso de requisições.

await new Promise(r => setTimeout(r, 1000/rateLimit))
Relacionados: api streaming, throttling, delay

Chunk Processing

Processamento de dados em lotes (chunks) ao invés de item por item ou tudo de uma vez. Equilibra performance e memória.

for (const batch of chunk(data, 1000)) { }
Relacionados: batch processing, memory management, optimization

Memory Leak

Problema onde memória é alocada mas nunca liberada, causando crescimento contínuo do uso de RAM até crash da aplicação.

// Arrays gigantes que não são limpos
Relacionados: garbage collection, memory management, optimization

Streams & Dados

Backpressure

Mecanismo para controlar fluxo de dados quando produtor é mais rápido que consumidor. Evita overflow de memória em streams.

// Stream pausa quando buffer está cheio
Relacionados: streams, flow control, memory management

Streaming

Processamento de dados conforme chegam, sem carregar tudo na memória. Ideal para arquivos grandes e dados real-time.

// Processa linha por linha conforme lê arquivo
Relacionados: real-time, memory efficiency, data processing

Aprenda na Prática

Domine todos estes conceitos com exemplos práticos no nosso curso completo de JavaScript Avançado.