12 preguntas para validar JavaScript y bases de Node: JS moderno, asincronía, módulos CommonJS/ESM y gestión de proyecto npm.
Responde a todo y pulsa Corregir: aparecerán tu puntuación y las explicaciones.
1.1 · Recuerdo
1. ¿Qué reflejo adoptar para declarar variables en JavaScript moderno?
const por defecto (referencia estable, ámbito de bloque), let si el valor evoluciona, var desterrado.
1.1 · Aplicación
2. Salim quiere los nombres de los usuarios activos desde un array users. ¿Escritura moderna?
filter conserva (los activos), map transforma (sus nombres): la intención se lee de un vistazo.
1.1 · Arbitraje
3. Salim relee const config = { port: 3000 } y luego config.port = 4000. ¿Arbitraje?
const protege la «caja» (la referencia), no su contenido: modificar un campo sigue siendo posible.
1.2 · Recuerdo
4. ¿Qué hace await en una función async?
await suspende la función mientras espera la promesa sin bloquear el bucle de eventos.
1.2 · Aplicación
5. El console.log de Salim muestra undefined justo después de una llamada asíncrona. ¿Causa?
Lanzar no es obtener: el resultado llega más tarde (callback, .then() o await).
1.2 · Aplicación
6. Salim encadena tres operaciones dependientes (archivo → base → API). ¿Escritura recomendada?
async/await: el código se lee en orden, sin bloquear, errores gestionados en el mismo lugar.
1.3 · Aplicación
7. Salim importa su módulo local calculs.js en CommonJS. ¿Sintaxis correcta?
Módulo local = ruta en ./ o ../; nombre solo = nativo (fs) o paquete npm.
1.3 · Aplicación
8. Salim arranca un proyecto nuevo y quiere la sintaxis estándar (igual que en front). ¿Elección?
ESM = estándar del lenguaje, coherente front/back, recomendado para un proyecto nuevo.
1.3 · Arbitraje
9. El proyecto de Salim mezcla require e import en el mismo archivo y falla. ¿Arbitraje?
Un sistema por archivo: la config decide, no se mezcla sin explicarlo.
1.4 · Recuerdo
10. ¿Qué hay que versionar en Git para un proyecto Node?
La receta (json + lock) se versiona; node_modules se regenera vía npm install.
1.4 · Aplicación
11. Salim instala una herramienta de reinicio útil solo en desarrollo. ¿Comando?
-D marca los paquetes de dev: necesarios en el equipo, no en producción.
1.4 · Arbitraje
12. Antes de entregar, npm audit señala una vulnerabilidad en una dependencia. ¿Arbitraje?
Las dependencias son un vector de ataque real: auditoría → actualización → prueba → entrega.
¿Y ahora qué?
Puntuación ≥ 80 %: pase al Nivel 2 V3 (módulos nativos fs/path/os, EventEmitter, streams y primer servidor HTTP — los bloques de sistema de Node).
Puntuación entre 50 % y 80 %: repase las secciones falladas (JS moderno 1.1, asincronía 1.2, módulos 1.3, npm 1.4), relea las explicaciones anteriores y vuelva a hacer el test.
Puntuación < 50 %: reinicie el nivel desde el principio ejecutando cada fragmento con node — la asincronía (1.2) merece una segunda lectura completa.