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.
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?
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?
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.
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?
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.
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.