Cómo aprobar una entrevista de JavaScript: las mejores preguntas de la A a la Z

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Cómo aprobar una entrevista de JavaScript: las mejores preguntas de la A a la Z



La entrevista para un puesto de desarrollador JavaScript no es solo una verificación de sintaxis. Los empleadores quieren ver un conocimiento profundo del lenguaje, sus peculiaridades y la capacidad de trabajar con asincronía. En este artículo, analizaremos los temas clave que te ayudarán a superar la entrevista con confianza. Revisaremos preguntas desde conceptos básicos hasta temas avanzados de Node.js con ejemplos de código reales.



1. Fundamentos: tipos de datos, hoisting y ámbitos de visibilidad



Empecemos por lo fundamental. JavaScript es un lenguaje con tipado dinámico. Comprender var, let y const es el mínimo obligatorio.



Pregunta: ¿Cuál es la diferencia entre var, let y const?

  • var tiene ámbito de función y se eleva (hoisting) con el valor undefined.
  • let y const tienen ámbito de bloque y no se inicializan hasta su declaración (Zona Muerta Temporal).
  • const prohíbe la reasignación, pero no hace que el objeto sea inmutable.


Ejemplo de hoisting:

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

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


Pregunta: ¿Qué es el "hoisting" (elevación)?

Es un mecanismo mediante el cual las declaraciones de variables y funciones se mueven al inicio de su ámbito de visibilidad antes de ejecutar el código. Las funciones declaradas con function se elevan completamente, mientras que las variables solo se eleva su declaración, no su inicialización.



2. Closures y contexto (this)



Los closures son una de las características más potentes de JavaScript. Permiten que una función recuerde el entorno léxico en el que fue creada.



Pregunta: ¿Qué es un closure? Dé un ejemplo.

Un closure es la combinación de una función y su entorno léxico. En otras palabras, una función interna tiene acceso a las variables de la función externa incluso después de que la externa haya terminado su ejecución.



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

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


Pregunta: ¿Cómo funciona this en JavaScript?

El valor de this se determina por cómo se llama a la función, no por dónde se declara. Las reglas principales son:

  • En el contexto global (en el navegador) — window, en Node.js — global.
  • En un método de objeto — el propio objeto.
  • En una función llamada con new — una nueva instancia.
  • Al usar call, apply, bind — el objeto pasado.
  • En funciones flecha — this se toma del contexto léxico externo.


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

const greet = obj.greet;greet(); // undefined (pérdida de contexto)

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


3. Asincronía: Event Loop, promesas y async/await



JavaScript es un lenguaje de un solo hilo, pero maneja eficientemente las operaciones asíncronas gracias al Event Loop. Este es uno de los temas más populares en las entrevistas.



Pregunta: ¿Qué es el Event Loop y cómo funciona?

El Event Loop es un ciclo infinito que supervisa la pila de llamadas (Call Stack) y las colas de tareas (Task Queue / Microtask Queue). Si la pila está vacía, toma la primera tarea de la cola de microtareas (Promise, MutationObserver) o macrotareas (setTimeout, I/O).



Pregunta: ¿Cuál es la diferencia entre microtareas y macrotareas?

  • Microtareas: Promise.then/catch/finally,

Blogs

Book Recommendations