Como passar em uma entrevista de JavaScript: guia para desenvolvedores

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Como se preparar para uma entrevista de JavaScript: guia completo

\n\n

A entrevista de JavaScript não é um exame escolar onde você só precisa decorar respostas. É uma conversa onde testam não apenas seu conhecimento de sintaxe, mas também sua capacidade de pensar, entender os mecanismos da linguagem e resolver problemas reais. Se você sente que está "perdido" em closures, confunde this e tem medo do event loop — não se preocupe. Preparamos um guia estruturado que ajudará você a passar com confiança na entrevista de JavaScript.

\n\n

Por que é tão difícil se preparar para uma entrevista de JS?

\n\n

JavaScript é uma linguagem com alma (e às vezes com surpresas). Uma mesma função pode se comportar de forma diferente dependendo do contexto. Por isso, na entrevista de JavaScript, não apenas perguntam "o que o código exibe" — pedem que você explique por quê. E é aí que muitos falham. Mas vamos ensinar você a identificar essas armadilhas.

\n\n

1. Fundamentos que você precisa saber de cor

\n\n

Tipos de dados e coerção de tipos

\n\n

Vamos começar pela base. Em JavaScript, existem 7 tipos primitivos: string, number, boolean, null, undefined, symbol, bigint — e um complexo: object. Mas o truque é que typeof null retorna "object" — isso é um erro histórico que você precisa saber.

\n\n

Em entrevistas de JavaScript, adoram perguntar sobre coerção implícita de tipos. Por exemplo:

\n\n
console.log([] + []);   // ""\nconsole.log([] + {});   // "[object Object]"\nconsole.log({} + []);   // 0 (no console do navegador)\n
\n\n

Por que isso acontece? Porque o operador + tenta converter os operandos para primitivos, chamando toString() ou valueOf(). Lembre-se: um array vazio se transforma em string vazia, e um objeto se transforma na string "[object Object]".

\n\n

Closures e escopo léxico

\n\n

Este é um dos tópicos mais comuns em entrevistas de JavaScript. Closure é uma função que "lembra" as variáveis do seu escopo externo mesmo após a função externa ter terminado sua execução.

\n\n
function createCounter() {\n  let count = 0;\n  return function() {\n    count++;\n    return count;\n  };\n}\n\nconst counter = createCounter();\nconsole.log(counter()); // 1\nconsole.log(counter()); // 2
\n\n

Na entrevista, podem pedir para você escrever uma função semelhante ou explicar por que no loop com var surge o problema clássico:

\n\n
for (var i = 0; i < 5; i++) {\n  setTimeout(() => console.log(i), 1000);\n}\n// Exibe 5, 5, 5, 5, 5
\n\n

A solução é usar let ou envolver em uma closure. Explique que var tem escopo de função, e não de bloco.

\n\n

2. "This" — a dor e a alegria de todo desenvolvedor JS

\n\n

Perguntas sobre this são clássicas. A regra é simples: o valor de this é determinado por como a função é chamada, não onde ela é declarada.

\n\n
    \n
  • No contexto global (no navegador), this é window.
  • \n
  • Em um método de objeto, é o próprio objeto.
  • \n
  • Em uma função construtora, é a nova instância.
  • \n
  • Em uma arrow function, this vem do escopo léxico externo.
  • \n
\n\n

Exemplo para entrevista:

\n\n
const obj = {\n  name: "JS",\n  getName: function() {\n    return this.name;\n  }\n};\n\nconst fn = obj.getName;\nconsole.log(fn()); // undefined (contexto perdido)
\n\n

Como corrigir? Usar bind, call, apply ou uma arrow function.

\n\n

3. Event Loop e assincronicidade — tópico para estrelas

\n\n

Sem entender o event loop, você não passará em uma entrevista de JavaScript de nível intermediário. Lembre-se da sequência: primeiro, todo o código síncrono é executado (pi

Blogs

Book Recommendations