Como passar em uma entrevista de JavaScript: principais perguntas de A a Z

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 passar em uma entrevista de JavaScript: principais perguntas de A a Z



A entrevista para a posição de desenvolvedor JavaScript não é apenas uma verificação de sintaxe. Os empregadores querem ver um profundo conhecimento da linguagem, suas peculiaridades e a capacidade de trabalhar com assincronia. Neste artigo, analisaremos os tópicos principais que o ajudarão a passar na entrevista com confiança. Abordaremos perguntas desde conceitos básicos até tópicos avançados de Node.js com exemplos reais de código.



1. Fundamentos: tipos de dados, hoisting e escopos



Vamos começar pelo básico. JavaScript é uma linguagem de tipagem dinâmica. Compreender var, let e const é o mínimo obrigatório.



Pergunta: Qual a diferença entre var, let e const?

  • var tem escopo de função e sofre hoisting com o valor undefined.
  • let e const têm escopo de bloco e não são inicializados até a declaração (Zona Morta Temporal).
  • const proíbe a reatribuição, mas não torna o objeto imutável.


Exemplo de hoisting:

console.log(a); // undefined (hoisting)var a = 5;

console.log(b); // ReferenceError: Cannot access 'b' before initializationlet b = 10;


Pergunta: O que é hoisting?

É um mecanismo no qual as declarações de variáveis e funções são movidas para o início do seu escopo antes da execução do código. Funções declaradas com function sofrem hoisting por completo, enquanto variáveis sofrem hoisting apenas na declaração, mas não na inicialização.



2. Closures e contexto (this)



Closures são um dos pontos fortes do JavaScript. Elas permitem que uma função lembre do ambiente léxico no qual foi criada.



Pergunta: O que é uma closure? Dê um exemplo.

Uma closure é a combinação de uma função com seu ambiente léxico. Em outras palavras, uma função interna tem acesso às variáveis da função externa mesmo após a função externa ter terminado sua execução.



function createCounter() {  let count = 0;  return function() {    count++;    return count;  };}

const counter = createCounter();console.log(counter()); // 1console.log(counter()); // 2


Pergunta: Como funciona o this em JavaScript?

O valor de this é determinado por como a função é chamada, e não onde ela é declarada. As regras principais são:

  • No contexto global (no navegador) — window, no Node.js — global.
  • Em um método de objeto — o próprio objeto.
  • Em uma função chamada com new — uma nova instância.
  • Ao usar call, apply, bind — o objeto passado.
  • Em arrow functions — this é herdado do contexto léxico externo.


const obj = {  name: 'Alice',  greet() {    console.log(this.name);  }};

const greet = obj.greet;greet(); // undefined (perda de contexto)

const boundGreet = obj.greet.bind(obj);boundGreet(); // Alice


3. Assincronia: Event Loop, promises e async/await



JavaScript é uma linguagem single-thread, mas lida eficientemente com operações assíncronas graças ao Event Loop. Este é um dos tópicos mais populares em entrevistas.



Pergunta: O que é o Event Loop e como ele funciona?

O Event Loop é um ciclo infinito que monitora a pilha de chamadas (Call Stack) e as filas de tarefas (Task Queue / Microtask Queue). Se a pilha estiver vazia, ele pega a primeira tarefa da fila de microtasks (Promise, MutationObserver) ou macrotasks (setTimeout, I/O).



Pergunta: Qual a diferença entre microtasks e macrotasks?

  • Microtasks: Promise.then/catch/finally,

Blogs

Book Recommendations