Perguntas frequentes de entrevista de JavaScript

Por Aaron Cao · Atualizado em

Perguntas frequentes de entrevista de JavaScript
Espere fundamentos: closures, o event loop, a vinculação do this, protótipos, e escopo com var, let e const. Depois vêm exercícios de código como implementar um debounce, achatar um array, ou escrever um utilitário de promise, além de temas de navegador como delegação de eventos. Entrevistas sênior acrescentam padrões async e desempenho.

Espere fundamentos: closures, o event loop, a vinculação do this, protótipos, e escopo com var, let e const. Depois vêm exercícios de código como implementar um debounce, achatar um array, ou escrever um utilitário de promise, além de temas de navegador como delegação de eventos. Entrevistas sênior acrescentam padrões async e desempenho.

Quais fundamentos de JavaScript mais aparecem?

A lista de perguntas de JavaScript parece infinita, e decorar perguntas aleatórias é o jeito mais lento de encará-la. Esta seção reduz o escopo aos conceitos aos quais os entrevistadores voltam em quase toda entrevista, para que sua prática corresponda à distribuição real. Cinco temas respondem pela maior parte das entrevistas de triagem:

  • Closures: o que uma função captura, o clássico bug da variável do loop, e por que os padrões de módulo funcionam.
  • O event loop: call stack, fila de tarefas e fila de microtasks, e em que ordem os logs aparecem em um exemplo misto.
  • A vinculação do this: padrão, implícita, explícita com call e apply, e como as arrow functions se diferenciam.
  • Protótipos: busca de propriedades ao longo da cadeia, e para o que a sintaxe class é compilada.
  • Escopo: var em relação a let e const, hoisting, e a temporal dead zone.

Coerção de igualdade com == em relação a ===, truthiness, e métodos de array como map, filter e reduce completam o nível de triagem. Se você consegue explicar cada item acima em voz alta em menos de um minuto, a rodada de fundamentos está garantida.

Quais exercícios de código vale a pena praticar?

Além das perguntas conceituais, a maioria das rodadas de JavaScript inclui um pequeno exercício de implementação feito ao vivo. O conjunto recorrente é pequeno e vale a pena treinar até que cada um leve minutos, não várias tentativas:

  • Implementar debounce e throttle, e dizer quando cada um se encaixa.
  • Achatar um array aninhado com e sem recursão.
  • Escrever uma versão simplificada de Promise.all que rejeita na primeira falha.
  • Construir um pequeno event emitter com on, off e emit.
  • Clonar um objeto em profundidade e apontar quais casos sua versão deixa passar.

Um candidato front-end entrevistando para uma vaga pleno, por exemplo, pode receber debounce como aquecimento, e depois ser solicitado a conectá-lo a um campo de busca e explicar o que acontece com as requisições em andamento. O follow-up é o teste de verdade; os entrevistadores estendem o exercício para ver onde termina seu domínio da linguagem.

Praticar isso em voz alta contra um entrevistador que questiona é o que faz fixar; a página de entrevista simulada mostra como conduzir sessões cronometradas com perguntas de acompanhamento.

Como são as perguntas de navegador e async?

Vagas voltadas a navegador acrescentam uma camada sobre os fundamentos da linguagem. Delegação de eventos é o ponto central: por que um único listener no elemento pai é melhor que mil nos filhos, como o bubbling viabiliza isso, e quando a fase de captura importa. Processamento em lote de atualizações do DOM, layout thrashing, e o que dispara um reflow aparecem em entrevistas voltadas a desempenho.

As perguntas sobre async convergiram para um formato padrão: um trecho misturando setTimeout, cadeias de promise, e funções async, em que você precisa prever a ordem de saída. A resposta depende da ordem entre microtasks e macrotasks, e os entrevistadores se importam mais com o porquê do que com a sequência em si. Tratamento de erros através de fronteiras de await, encadeamento de promise em relação a aninhamento, e fazer requisições competirem com Promise.race completam o conjunto.

Como essas rodadas diferem entre os formatos de código, comportamental, e design de sistemas é abordado no hub de tipos de entrevista.

Como praticar para que isso valha na rodada de verdade?

Ler respostas dá sensação de produtividade, mas quase não se transfere. A rodada é falada, cronometrada, e interativa, então a prática também precisa ser. Faça sessões simuladas em que você narra enquanto digita, é interrompido com perguntas de acompanhamento, e enfrenta um relógio correndo; é essa pressão que torna a recuperação automática. Conjuntos específicos para outras linguagens e stacks estão no hub de bancos de perguntas.

Uma observação honesta: rodadas reais de JavaScript costumam acontecer em um editor compartilhado com sua tela visível, e avaliações supervisionadas gravam isso. Um assistente serve para preparação e prática, não para a tela compartilhada ao vivo. Onde ajuda ao vivo é legítima, em ligações telefônicas sem tela compartilhada ou nas suas próprias sessões de preparação, a sobreposição da SubcueAI permanece local na sua máquina e nenhum bot entra na chamada.

FAQ

As entrevistas de JavaScript são só problemas de LeetCode?

Normalmente não. Perguntas de algoritmos genéricos aparecem, mas as rodadas específicas de JavaScript se apoiam em mecânica da linguagem como closures, o event loop, e a vinculação do this, além de pequenas implementações práticas como debounce ou um event emitter.

No que um desenvolvedor júnior deve focar primeiro?

Escopo, closures, métodos de array, e explicar com clareza == em relação a ===. Juniores falham em triagens por fundamentos instáveis com muito mais frequência do que por não dominar tópicos avançados como generators ou proxies.

Como explico o event loop de forma simples?

Em uma frase: código síncrono roda na call stack, callbacks concluídos esperam em filas, e depois de cada execução da stack, a engine esvazia todas as microtasks, como callbacks de promise, antes de pegar a próxima macrotask, como um timer. Depois, percorra um exemplo de ordem de logs.

As entrevistas de JavaScript cobrem TypeScript?

Cada vez mais, sim, quando o time usa. Espere perguntas sobre tipagem básica, unions, generics em nível funcional, e o que o TypeScript garante e não garante em tempo de execução. Os fundamentos de JavaScript ainda decidem a rodada.

Perguntas relacionadas

← Mais sobre Perguntas de entrevista por cargo e tema