JavaScript de Cero a Experto / Proyectos + retos
Reto de entrevista: debounce (el jefe final)
El último reto del supercurso, y el más pedido en entrevistas de front-end.
debounce espera a que dejes de disparar un evento y ENTONCES actúa, una sola
vez. Es lo que hace que una barra de búsqueda no bombardee al servidor con cada
tecla —lo usaste en el proyecto del buscador, y hoy lo construyes desde cero.
Cerramos JavaScript con broche de oro.
Reto
debounce: espera a que pare
Qué debes construir
Una función debounce(fn, ms) que devuelva una versión "pospuesta" de fn:
cada vez que la llamas, reinicia un temporizador de ms; fn solo se ejecuta
cuando pasan ms SIN nuevas llamadas. Si llamas rápido diez veces, se ejecuta
una sola vez, ms después de la última.
Reglas
- Llamadas rápidas y seguidas → una sola ejecución, tras la pausa.
- Cada llamada nueva REINICIA la cuenta (cancela la anterior).
- La función debe recibir bien los argumentos de la última llamada.
- Pasa las comprobaciones del playground.
20:00
Cuando estés listo, arranca el reloj.
Fin del supercurso de JavaScript
Lo lograste. Diecisiete módulos: del primer console.log a los patrones que
sostienen las apps reales. Repasa lo que ahora SABES HACER —no en teoría, con
las manos:
- El lenguaje a fondo: tipos, funciones, closures,
this, prototipos, clases. - Los datos: arrays, objetos,
Map/Set, inmutabilidad, programación funcional. - El navegador: DOM, eventos,
fetch,localStorage, observers, Web Workers. - La asincronía sin miedo: event loop, promesas,
async/await. - La arquitectura: módulos, patrones, observables, máquinas de estado.
- El oficio: errores, debugging, testing, y proyectos completos de portafolio.
Ya no eres alguien que "está aprendiendo JavaScript". Eres alguien que construye con JavaScript. Lo que sigue en tu camino es ponerle red de tipos a todo esto —TypeScript, el siguiente supercurso— y luego los frameworks (React, Next.js, Angular) que no son más que JavaScript bien organizado, el que ya dominas. La base está puesta. Ahora se construye alto.