Termos de JavaScript
150 termos de JavaScript em português. Event loop, closures, promises e as armadilhas clássicas da linguagem.
A
- AbortControllerObjeto que emite um sinal de cancelamento. Passando seu signal a fetch ou a ouvintes de eventos, chamar…
- addEventListenerMétodo que registra uma função para ser chamada quando um evento ocorre num elemento, como click ou input…
- AggregateErrorTipo de erro que agrupa vários erros num array na propriedade errors. É o motivo de rejeição de Promise.any…
- ambiente léxicoEstrutura interna que mapeia nomes de variáveis a valores e aponta para o ambiente externo. É por esse…
- array esparsoArray com buracos: posições sem valor, que não existem de fato, diferentes de posições com undefined. Surgem…
- Array.isArrayMétodo estático que diz se um valor é realmente um array, devolvendo true ou false. Resolve o fato de typeof…
- arrow functionSintaxe curta para funções, com =>, que não cria seu próprio this nem arguments e usa os do escopo onde foi…
- async awaitPar de palavras-chave que escreve código assíncrono com cara de síncrono: async marca a função, que sempre…
- async generatorFunção declarada com async function* que usa yield e await, devolvendo um iterador assíncrono consumido com…
- atribuição lógicaOperadores ||=, &&= e ??= que combinam teste e atribuição: só atribuem quando a condição do operador lógico…
B
- backpressureMecanismo dos streams do Node em que o consumidor lento sinaliza ao produtor para pausar. Sem ele, os dados…
- backtracking catastróficoFalha de desempenho em expressões regulares em que o motor testa um número exponencial de caminhos antes de…
- BigIntTipo primitivo para inteiros de tamanho arbitrário, criado com sufixo n ou BigInt(). Ultrapassa o limite…
- bindMétodo de função que devolve uma nova função com this fixo e, opcionalmente, argumentos já preenchidos. A…
C
- cadeia de protótiposSequência de objetos ligados por protótipo, percorrida na busca de uma propriedade: do próprio objeto até…
- call stackEstrutura que registra as funções em execução, empilhando cada chamada e desempilhando ao retornar. O…
- callbackFunção passada como argumento para outra função, que a chama depois, quando algo termina ou acontece. Base…
- callback hellAninhamento profundo de callbacks assíncronos, que forma uma pirâmide de código difícil de ler e de tratar…
- campo privadoCampo ou método de classe cujo nome começa com #, acessível somente dentro do corpo da classe. Diferente da…
- classeSintaxe do ES2015 para declarar construtores e métodos de forma organizada. Por baixo, continua sendo…
- closureFunção que mantém acesso às variáveis do escopo em que foi criada, mesmo depois que esse escopo terminou de…
- coerção de tiposConversão automática ou explícita de um valor para outro tipo. A implícita ocorre em operadores como + e ==…
- CommonJSSistema de módulos original do Node, baseado em require para importar e module.exports para exportar. O…
- constDeclara uma variável de escopo de bloco que não pode ser reatribuída depois de inicializada. O valor…
- constructorMétodo especial de uma classe, chamado por new, que inicializa a instância. Cada classe tem só um, e em…
- contexto de execuçãoEstrutura interna que guarda as variáveis, o valor de this e a referência ao escopo externo de um trecho de…
- curto-circuitoCaracterística de &&, || e ?? de só avaliar o lado direito quando o esquerdo não basta para decidir o…
D
- debouncePadrão que adia a execução de uma função até passar um tempo sem novas chamadas. Cada nova chamada reinicia…
- declaração de funçãoForma de criar uma função com a palavra function e um nome, como function soma() {}. Sofre hoisting…
- delegação de eventosTécnica que coloca um único ouvinte num elemento pai para tratar eventos dos filhos, aproveitando o…
- descritor de propriedadeObjeto que descreve os atributos de uma propriedade: value, writable, enumerable e configurable, ou get e…
- destructuringSintaxe que extrai valores de arrays ou propriedades de objetos direto para variáveis, numa só linha, com…
- DOMRepresentação em árvore da página HTML que o navegador expõe ao JavaScript. Cada tag vira um nó que o código…
E
- escopo de blocoRegra pela qual let, const e class valem só dentro das chaves onde foram declaradas, como em if, for ou um…
- ESLintFerramenta que analisa o código JavaScript sem executá-lo e aponta erros prováveis e violações de estilo…
- evalFunção global que executa uma string como código JavaScript no escopo atual. Considerada perigosa e lenta…
- event bubblingComportamento em que um evento disparado num elemento sobe pela árvore do DOM, passando por cada ancestral…
- event loopMecanismo que permite ao JavaScript, de thread única, lidar com tarefas assíncronas: quando a pilha esvazia…
- EventEmitterClasse do módulo events do Node que permite registrar ouvintes com on e disparar eventos com emit. Muitas…
- extendsPalavra-chave que faz uma classe herdar de outra, ligando seus protótipos. Também permite estender classes…
F
- falsyValor que vira false ao ser convertido para booleano. São oito: false, 0, -0, 0n, '' (string vazia), null…
- fetchFunção nativa que faz requisições HTTP e devolve uma promise com a resposta. Só rejeita em falha de rede…
- FinalizationRegistryRegistro que chama um callback depois que um objeto registrado é coletado, permitindo limpar recursos…
- for inLaço que percorre os nomes das propriedades enumeráveis de um objeto, incluindo as herdadas pelo protótipo…
- for ofLaço que percorre os valores de qualquer iterável, como arrays, strings, Map e Set. Aceita break, continue e…
- forEachMétodo de array que executa uma função para cada elemento, em ordem, sem devolver nada. Serve para efeitos…
- função de ordem superiorFunção que recebe outra função como argumento, devolve uma função, ou ambos. Em JavaScript isso é possível…
- função puraFunção que, dados os mesmos argumentos, sempre devolve o mesmo resultado e não causa efeitos colaterais…
G
- garbage collectorParte do motor que libera a memória de objetos inalcançáveis a partir das raízes. No V8 é geracional…
- generatorFunção declarada com function* que pode pausar com yield e ser retomada depois, devolvendo valores um a um…
- getterPropriedade definida com get que executa uma função ao ser lida, permitindo calcular valores sob demanda…
H
- hidden classEstrutura interna do V8 que descreve o formato de um objeto, com suas propriedades e ordem. Objetos de mesmo…
- hoistingComportamento em que declarações são registradas no início do escopo antes da execução: funções já…
I
- igualdade estritaComparação com === ou !== que exige mesmo tipo e mesmo valor, sem conversão automática. Evita surpresas da…
- igualdade frouxaComparação com == ou != que converte os operandos para um tipo comum antes de comparar, seguindo regras de…
- IIFEFunção invocada imediatamente após ser definida, escrita como (function () {...})(). Cria um escopo próprio…
- import dinâmicoChamada import() que carrega um módulo sob demanda e devolve uma promise com o módulo. Aceita caminho…
- import.metaObjeto especial de cada módulo ES com metadados do próprio módulo. Em Node e no navegador traz a url, e no…
- inline cacheOtimização do motor que memoriza, em cada ponto do código, o formato dos objetos vistos para acessar…
- inserção automática de ponto e vírgulaRegra em que o parser adiciona ponto e vírgula em certos finais de linha. Pode quebrar o código, como em…
- instanceofOperador que testa se o protótipo de um construtor aparece na cadeia de protótipos de um objeto. Devolve…
- inteiro seguroNúmero inteiro que o tipo Number representa sem perda, de -(2^53 - 1) a 2^53 - 1. Fora dessa faixa, inteiros…
- iteradorObjeto com método next() que devolve { value, done } a cada chamada. É o que o for...of e o spread usam por…
J
- JSONFormato de texto para trocar dados, baseado na sintaxe de objetos do JavaScript. O objeto global JSON…
- JSON.stringifyFunção que converte um valor JavaScript em texto JSON. Ignora undefined, funções e símbolos em objetos, e…
L
- labeled statementInstrução precedida por um nome e dois-pontos, que permite usar break ou continue para sair ou pular um laço…
- letDeclara uma variável de escopo de bloco que pode ser reatribuída e que fica inacessível até a linha da…
- libuvBiblioteca em C que dá ao Node o event loop e o I/O assíncrono. Mantém um pool de threads, por padrão com…
- live bindingNos módulos ES, o nome importado é uma ligação viva à variável exportada, não uma cópia. Se o módulo dono…
- localStorageArmazenamento chave-valor do navegador que mantém dados mesmo depois de fechar a aba. Guarda só strings…
M
- macrotaskTarefa comum da fila do event loop, originada por timers, eventos de DOM, I/O e mensagens. Uma por vez é…
- MapColeção de pares chave-valor em que a chave pode ser de qualquer tipo, inclusive objetos, e a ordem de…
- memoizaçãoTécnica que guarda o resultado de uma função para cada conjunto de argumentos e o reaproveita em chamadas…
- método filterMétodo de array que devolve um novo array só com os itens para os quais a função retorna um valor truthy. O…
- método findMétodo de array que devolve o primeiro item para o qual a função retorna truthy, ou undefined se nenhum…
- método mapMétodo de array que cria um novo array aplicando uma função a cada item, sem alterar o original. O resultado…
- microtaskTarefa curta da fila de alta prioridade, alimentada por then de promises, await e queueMicrotask. Roda logo…
- mixinPadrão para compor comportamento reutilizável numa classe, geralmente com uma função que recebe uma classe…
- módulo ESArquivo que usa import e export para compartilhar código com outros arquivos. Cada módulo tem escopo…
- monkey patchingAlterar em tempo de execução um objeto, protótipo ou função existente, trocando ou acrescentando…
N
- NaNValor numérico especial, 'not a number', resultante de operações inválidas como 0/0 ou Number('abc'). É o…
- newOperador que chama uma função como construtor: cria um objeto novo, liga seu protótipo, executa a função com…
- new.targetMeta-propriedade disponível dentro de funções que indica se elas foram chamadas com new e qual construtor…
- nullValor primitivo que representa a ausência intencional de objeto. Precisa ser atribuído de forma explícita, e…
- nullish coalescingOperador ?? que devolve o lado direito apenas quando o esquerdo é null ou undefined. Diferente do ||…
O
- Object.entriesFunção que devolve um array de pares [chave, valor] das propriedades próprias e enumeráveis de um objeto…
- Object.freezeFunção que congela um objeto: impede adicionar, remover ou alterar propriedades próprias. O congelamento é…
- Object.isFunção que compara dois valores pela regra SameValue: parecida com ===, mas trata NaN como igual a NaN e…
- objeto argumentsObjeto parecido com array, disponível dentro de funções comuns, com todos os argumentos recebidos. Não é um…
- objeto DateObjeto que representa um instante no tempo, guardando milissegundos desde 1º de janeiro de 1970 em UTC. Os…
- objeto ErrorObjeto padrão para representar falhas, com message, name e stack. Ao usar throw, o certo é lançar new Error…
- objeto literalForma mais direta de criar um objeto, com chaves e pares chave: valor. Aceita atalhos como propriedades…
- objeto sem protótipoObjeto criado com Object.create(null), que não herda de Object.prototype e por isso não tem toString nem…
- operador ternárioOperador de três partes, condição ? valorSeVerdadeiro : valorSeFalso, que funciona como um if em forma de…
- operador vírgulaOperador que avalia várias expressões da esquerda para a direita e devolve o valor da última. Aparece em…
- optional chainingOperador ?. que interrompe a leitura e devolve undefined quando o valor à esquerda é null ou undefined, em…
P
- package.jsonArquivo na raiz do projeto que descreve nome, versão, dependências e scripts. O npm lê esse arquivo para…
- parâmetro padrãoValor usado quando o argumento é omitido ou é undefined, definido na assinatura com =, como function f(x =…
- parseIntFunção global que lê o começo de uma string e devolve um inteiro, parando no primeiro caractere inválido…
- ponto flutuanteFormato numérico de 64 bits (IEEE 754) usado por todo Number em JavaScript. Não representa exatamente muitas…
- process.nextTickFunção do Node que agenda um callback para rodar logo após a operação atual, antes das promises e de…
- promiseObjeto que representa o resultado futuro de uma operação assíncrona, nos estados pendente, cumprida ou…
- Promise.allFunção que recebe várias promises e devolve uma que cumpre com o array de resultados quando todas cumprem…
- Promise.allSettledMétodo que espera todas as promises terminarem, dando certo ou não, e devolve um array de objetos com status…
- Promise.withResolversFunção estática que devolve um objeto com uma promise e as funções resolve e reject separadas, sem exigir um…
- protótipoObjeto ao qual outro objeto está ligado para herdar propriedades e métodos. Quando uma propriedade não é…
- prototype pollutionVulnerabilidade em que a entrada do usuário altera Object.prototype, via chaves como __proto__ em merges…
- ProxyObjeto que envolve outro e intercepta operações como leitura, escrita e exclusão de propriedades por meio de…
Q
- querySelectorMétodo do document que recebe um seletor CSS e devolve o primeiro elemento correspondente, ou null se nada…
- queueMicrotaskFunção global que agenda um callback na fila de microtasks, para rodar assim que o código atual terminar…
R
- reduceMétodo de array que percorre os itens acumulando um único resultado, a partir de um valor inicial e de uma…
- ReflectObjeto embutido com funções que espelham as operações internas da linguagem, como get, set, has e ownKeys…
- rest parametersParâmetro final precedido por três pontos que recolhe os argumentos restantes num array de verdade…
S
- SetColeção de valores únicos que mantém a ordem de inserção. Remove duplicatas automaticamente e oferece busca…
- setTimeoutFunção que agenda um callback para rodar depois de um atraso mínimo em milissegundos. Não bloqueia: o código…
- SharedArrayBufferBloco de memória binária que pode ser compartilhado entre a thread principal e workers, sem cópia. Dois…
- sortMétodo de array que ordena os elementos no próprio array. Sem função de comparação, converte tudo em texto e…
- spliceMétodo de array que remove, insere ou substitui itens no próprio array, alterando-o no lugar. Devolve um…
- spreadSintaxe de três pontos que espalha os itens de um iterável ou as propriedades de um objeto em outro lugar…
- staticModificador que associa um método ou campo à própria classe, e não às instâncias. Acessa-se por…
- static blockBloco static { } dentro de uma classe, executado uma vez quando a classe é definida. Permite lógica de…
- strict modeVariante da linguagem, ativada com 'use strict', que transforma erros silenciosos em exceções e proíbe…
- structuredCloneFunção nativa que cria uma cópia profunda de um valor, preservando datas, Map, Set e referências circulares…
- SymbolTipo primitivo cujos valores são únicos e imutáveis, criados com Symbol(). Servem como chaves de propriedade…
- Symbol.iteratorSímbolo conhecido que nomeia o método que devolve o iterador de um objeto. Quem o implementa se torna…
- Symbol.toPrimitiveSímbolo conhecido cujo método controla como um objeto é convertido em primitivo, recebendo a dica 'number'…
T
- tagged templateTemplate literal precedido por uma função, a tag, que recebe as partes de texto e os valores interpolados…
- tail call optimizationTécnica em que a chamada na última posição de uma função reaproveita o quadro da pilha. Prevista no ES2015…
- template literalString delimitada por crases que permite interpolar expressões com ${} e ocupar várias linhas. Substitui a…
- temporal dead zoneIntervalo entre o início do escopo e a linha onde let, const ou class são declaradas, durante o qual acessar…
- thenableQualquer objeto com um método then, que promises e await tratam como se fosse uma promise. É assim que…
- thisPalavra-chave que se refere ao objeto em cujo contexto a função executa. Seu valor depende de como a função…
- throwInstrução que interrompe a execução e lança um valor como exceção, que sobe a pilha até um catch. Aceita…
- top-level awaitUso de await direto no corpo de um módulo ES, fora de qualquer função async. O módulo só termina de carregar…
- trampolimPadrão que troca recursão por um laço: a função devolve outra função, em vez de se chamar. Evita estourar a…
- tree shakingOtimização do bundler que remove do pacote final os exports de módulos ES que nunca são importados. Depende…
- truthyValor que vira true ao ser convertido para booleano, como num if. Quase tudo é truthy, inclusive '0', [] e…
- try catchEstrutura que executa um bloco e, se ele lançar uma exceção, desvia para o catch, onde o erro é tratado. O…
- typed arrayVisão de números de tipo fixo, como Uint8Array ou Float64Array, sobre um ArrayBuffer. Guarda valores…
- typeofOperador que devolve uma string com o tipo de um valor, como 'number' ou 'string'. Tem exceções famosas…
U
- undefinedValor primitivo atribuído a variáveis não inicializadas, propriedades inexistentes e parâmetros omitidos…
- unhandled rejectionPromise rejeitada que ninguém trata com catch até o fim do ciclo. No Node moderno, o padrão é encerrar o…
V
- varForma antiga de declarar variáveis, com escopo de função em vez de bloco e declaração içada com valor…
- vazamento de memóriaSituação em que a memória de objetos que não serão mais usados continua alcançável e nunca é liberada. Em…
- voidOperador que avalia uma expressão e sempre devolve undefined. Usado para garantir undefined, ignorar o…
W
- WeakMapMapa cujas chaves precisam ser objetos (ou símbolos não registrados) e são mantidas de forma fraca: se nada…
- WeakRefObjeto que guarda uma referência fraca a outro, sem impedir a coleta do alvo. Seu deref() devolve o alvo se…
- Web WorkerScript que roda em uma thread separada do navegador, sem acesso ao DOM, e conversa com a página por…
- withInstrução antiga que adiciona um objeto à frente da cadeia de escopo dentro de um bloco. Foi banida do…
- wrapper objectObjeto criado por new String, new Number ou new Boolean que embrulha um primitivo. A linguagem também os…