P
prepair.app
Começar entrevista →
EnglishУкраїнськаРусскийDeutsch
🟨

Senior JavaScriptPerguntas de entrevista JavaScript

Senior · 5+ anos de experiência

As entrevistas de JavaScript se concentram em um pequeno número de coisas que a linguagem faz diferente de tudo mais: closures, `this`, protótipos e o event loop. Entenda bem isso e a maioria das outras perguntas se resolve sozinha. Aqui estão as mais frequentes, cada uma com uma resposta modelo. Senior: arquitetura, trade-offs, mentoria e tomada de decisão.

Experimente — sem necessidade de conta
Preparando sua pergunta…

Temas para se preparar

Tipos e coerção
Closures e escopo
`this` e protótipos
O event loop e async
Promises e async/await
DOM, eventos e o navegador

5 perguntas de nível Senior com respostas

1

Uma página parece travada ao rolar. Como você diagnostica isso?

Resposta

Grave um perfil de performance e veja qual parte do frame excede o orçamento: script, style e layout, paint, ou composite. Tarefas longas que bloqueiam a thread principal são a causa habitual, e o layout síncrono forçado — ler uma propriedade de geometria logo depois de escrever um estilo — é o clássico autoinfligido. Anime transform e opacity porque podem ser compostos sem layout, divida trabalho longo em pedaços, e mova o cálculo genuinamente pesado para um Web Worker.

2

Como você pensa sobre XSS, CSP e a política de mesma origem?

Resposta

XSS é entrada não confiável se tornando script executável, então a defesa é codificar a saída de acordo com o contexto e nunca montar HTML a partir de strings — textContent em vez de innerHTML. CSP é a segunda camada: diz ao navegador quais fontes podem executar, então uma injeção que passa não tem onde rodar. A política de mesma origem é o que impede outro site de ler sua página ou suas respostas; CORS é o servidor relaxando isso deliberadamente, não um recurso de segurança que protege o cliente.

3

Quando um `Proxy` é a ferramenta certa, e o que ele custa?

Resposta

É certo quando você genuinamente precisa interceptar operações que não pode enumerar de antemão — sistemas de reatividade, wrappers de validação, mocking. Custa a cada acesso, anula algumas otimizações da engine, e torna o debugging mais difícil porque o objeto não se comporta mais como o código-fonte sugere. Se um getter ou um wrapper simples bastasse, essa é a resposta melhor.

4

ES modules versus CommonJS — o que realmente difere?

Resposta

ESM é analisável estaticamente: os imports são resolvidos antes da execução, o que torna possível o tree shaking. O require do CommonJS é uma chamada em tempo de execução, então um bundler não pode provar com segurança o que não é usado. ESM também é assíncrono e tem bindings vivos, enquanto require retorna um snapshot do objeto de exports. A consequência prática é que misturar os dois, especialmente no Node, é onde estão os pontos de atrito.

5

Como você decide se adiciona uma dependência?

Resposta

Pese o que custa distribuí-la e mantê-la contra o que custaria escrevê-la e ser dono dela. O tamanho do bundle importa, mas os custos maiores são a superfície de API da qual você agora depende, o caminho de atualização, e o que acontece se ela for abandonada. Um pequeno utilitário costuma ser mais barato de escrever do que de depender dele; uma biblioteca de datas, uma de formulários ou qualquer coisa que toque a correção costuma ser mais barata de depender do que de fazer bem você mesmo.

🦎

Só ler as respostas não basta

Numa entrevista de verdade você fala sob pressão. O Cam faz essas mesmas perguntas, avalia cada resposta e mostra exatamente o que melhorar.

Praticar entrevista de Senior JavaScript →
Grátis · 3 entrevistas por mês

Outros níveis — JavaScript

Junior JavaScriptMiddle JavaScriptTodas as perguntas de JavaScript

Outras especializações

🔍Senior QA Manual🤖Senior QA AutomationSenior Java Backend🐍Senior Python Backend🐘Senior PHP Backend🦫Senior Go Backend🟢Senior Node.js Backend💎Senior Ruby on Rails🔷Senior C++⚛️Senior React Frontend