Uma pergunta JavaScript útil deve revelar um modelo mental, não recompensar uma sentença memorizada. Use estes grupos para praticar explicando o que acontece, por que acontece, e como você iria verificar.

01

Comportamento da linguagem

  • Como o escopo lexical e a cadeia de escopo afetam o fechamento?
  • Quando `this` depende do ponto de chamada e quando não depende?
  • Que erros práticos pode a coerção implícita introduzir?
  • Como os protótipos apoiam a delegação?
  • O que muda quando um módulo é avaliado mais de uma vez?
  • Como os descritores de propriedades afetam uma API?
  • Quando seria útil um símbolo?
  • Como diferem as cópias rasas e profundas?
  • O que torna dois valores iguais em diferentes operações de igualdade?
  • Como explicaria as zonas mortas temporais?
02

Async JavaScript e o navegador

  • Descreva uma volta de loop de eventos envolvendo uma tarefa e microtarefas em fila.
  • Como uma IU deve cancelar um pedido que já não é relevante?
  • O que causa a rejeição de uma promessa sem tratamento?
  • Como você limitaria a concorrência para um lote de pedidos?
  • Como podem duas chamadas compartilhar um pedido em voo?
  • Quando `Promise.allSettled` é mais útil que `Promise.all`?
  • Como você evita que respostas antigas substituam novos dados?
  • O que deve acontecer com uma entrada de cache após o carregador rejeitar?
  • Como os timers se comportam em uma aba inativa?
  • Onde pode aparecer a contrapressão em um sistema de frontend?
03

Execução e verificação

  • Implementar desalojamento com cancelamento.
  • Implementar o acelerador e explicar o seu comportamento de liderança e de fuga.
  • Criar um emissor de eventos com suporte para cancelar a subscrição.
  • Crie um cache de solicitação com TTL e deduplicação em voo.
  • Ajustar dados aninhados sem mutar a entrada.
  • Escreva uma função de nova tentativa com uma política de parada explícita.
  • Implementar um pequeno agendador de tarefas com um limite de concordância.
  • Normalizar os dados do servidor em um mapa de entidade.
  • Crie um helper de memória e descreva seus limites de invalidação.
  • Testes de projeto para uma função que depende do tempo.
04

Discussão de nível sênior

  • Onde deve ficar a validação em tempo de execução em um frontend tipado?
  • Como você evolui uma API de cliente compartilhada sem quebrar os consumidores?
  • O que deve ser observável em uma camada de solicitação?
  • Como investigaria uma longa tarefa na produção?
  • Quando é que um web worker é justificado?
  • Como os limites do pacote afetam o comportamento em tempo de execução?
  • Como você projetaria uma degradação controlada?
  • Que suposições de segurança nunca devem viver apenas em código de cliente?
  • Como você faz o tratamento de erros consistente sem esconder contexto?
  • Que restrições de navegador mudaria sua arquitetura?
05

Como praticar as perguntas

  • Resposta em três passes: mecanismo, exemplo concreto, e tradeoff.
  • Escreva o código somente após indicar o contrato e casos de borda importantes.
  • Verifique um caso de sucesso, um caso de limite e um caminho de falha.
  • Registre explicações fracas como tópicos de prática em vez de memorizar scripts mais longos.
  • Termine nomeando quais evidências mudariam sua decisão.
Referências

Fontes primárias

Revisão editorial
As afirmações sobre o produto foram verificadas com base no funcionamento atual. Encontrou um problema? Envie uma correção.