supercurso 02
JavaScript de Cero a Experto
El lenguaje de la web a fondo: del primer console.log a patrones, asincronía y testing.
17 módulos130 lecciones publicadas~55 h de contenidodesde cero
Temario
01Primeros pasos0/6
02Operadores y control0/7
03Funciones0/8
- Funciones: empaquetar y reutilizar código20m20
- Parámetros, argumentos y valores por defecto20m20
- Arrow functions: la forma moderna20m20
- Rest parameters: argumentos flexibles18m20
- Scope: el alcance de las variables20m20
- Closures: la mochila de la función22m20
- Hoisting e IIFE: comportamientos que debes conocer18m20
- Reto: la caja de Mi Bolsillo30m60
04Arrays0/8
- Arrays: listas de datos20m20
- Modificar arrays: agregar y quitar20m20
- Recorrer arrays: for, for...of y forEach22m20
- map: transformar una lista20m20
- filter y find: seleccionar elementos20m20
- reduce: acumular una lista en un valor22m20
- some, every, includes, sort e inmutabilidad22m20
- Reto: análisis de gastos30m60
05Objetos0/9
- Objetos: agrupar datos que van juntos20m20
- Métodos y this: objetos que hacen cosas20m20
- Destructuring: desempacar en una línea20m20
- Spread: copiar, combinar y actualizar sin mutar20m20
- Referencias vs copias: el bug más desconcertante20m20
- Optional chaining y nullish: navegar sin explotar18m20
- JSON: el idioma en que viajan los datos18m20
- Map y Set: colecciones con superpoderes18m20
- Reto: Mi Bolsillo v2, gastos con nombre propio30m60
06Strings, números y fechas0/7
- Template literals: strings con espacios en blanco18m20
- Métodos de string: operar texto como profesional20m20
- Números y Math: convertir, redondear y el susto del 0.1 + 0.220m20
- Intl: plata y números en perfecto colombiano18m20
- Fechas con Date: domar al objeto más tramposo20m20
- Regex desde cero: el detector de patrones22m20
- Reto: el recibo perfecto30m60
07DOM a fondo0/8
- El DOM: tu HTML convertido en objetos vivos20m20
- Seleccionar elementos: querySelector y querySelectorAll18m20
- Contenido: textContent vs innerHTML18m20
- Crear e insertar: createElement, append y remove20m20
- Atributos, classList y data-*20m20
- Estilos desde JavaScript: style, clases y variables CSS20m20
- Fragmentos y rendimiento: tocar el DOM con cabeza18m20
- Reto: Mi Bolsillo en pantalla35m60
08Eventos y listeners0/8
- addEventListener: tu página reacciona20m20
- El objeto event: el acta del suceso20m20
- Formularios: submit y preventDefault20m20
- Burbujeo y captura: los eventos viajan20m20
- Delegación de eventos: un listener para toda la lista20m20
- CustomEvent: fabrica tus propios eventos20m20
- AbortController: el interruptor maestro de tus listeners18m20
- Reto: Mi Bolsillo interactivo45m100
09Asincronía I0/7
- Síncrono vs asíncrono: esperar sin congelar20m20
- El event loop: el restaurante por dentro22m20
- Callbacks asíncronos y su infierno20m20
- Promesas I: consumirlas con then, catch y finally20m20
- Promesas II: fabricarlas con new Promise20m20
- Encadenar promesas: la pirámide, aplanada20m20
- Reto: Mi Bolsillo en la nube (simulada)35m60
10Asincronía II0/7
- async/await: promesas con ropa de código normal20m20
- Errores asíncronos: try, catch y throw20m20
- Promise.all y sus hermanos: esperar en paralelo22m20
- fetch: tu primera API real20m20
- fetch II: POST, headers y el cuerpo20m20
- fetch III: errores, estados de carga y AbortController22m20
- Reto: buscador de países con API real45m100
11POO en JS0/7
12JS funcional0/6
13Patrones y observables0/7
14APIs del navegador0/7
- localStorage: datos que sobreviven a la recarga20m20
- IntersectionObserver: el portero que avisa20m20
- MutationObserver y ResizeObserver: cámaras del DOM18m20
- Web Workers: el segundo cocinero20m20
- Clipboard, Geolocation y Notification: APIs con permiso20m20
- History API: el cuaderno de rutas de las SPAs20m20
- Reto: Mi Bolsillo que no olvida45m100
15Manejo de errores y debugging0/7
- La anatomía de un error: leer lo que grita la consola20m20
- throw, try, catch, finally: la red de seguridad20m20
- Errores personalizados: ponle nombre a tus fallas20m20
- Fallar bien: la estrategia detrás del try/catch20m20
- console más allá del .log: la caja del detective20m20
- Debugging real: breakpoints y el método científico25m20
- Reto: Mi Bolsillo blindado35m60
16Testing con Vitest0/7
- Por qué testear: el cinturón de seguridad del código20m20
- Construye tu propio expect: un framework en 15 líneas25m20
- Vitest de verdad: describe, it, expect25m20
- Un buen test: AAA y el arte de romper el código25m20
- TDD: rojo, verde, refactor25m20
- Mocks y spies: dobles de acción para tus tests25m20
- Reto: la red de seguridad de Mi Bolsillo40m60
17Proyectos + retos0/14
- El cierre: cómo se arma un proyecto de verdad20m20
- Proyecto: Mi Bolsillo definitivo (CRUD + localStorage)180m150
- Proyecto: buscador con API, búsqueda en vivo y paginación180m150
- Proyecto: juego de trivia con timer y máquina de estados180m150
- Reto de entrevista: FizzBuzz15m40
- Reto de entrevista: invertir y palíndromos15m40
- Reto de entrevista: frecuencia de caracteres15m40
- Reto de entrevista: anagramas20m60
- Reto de entrevista: el par que suma (Two Sum)20m60
- Reto de entrevista: aplanar un array (recursión)20m60
- Reto de entrevista: agrupar por propiedad (groupBy)20m60
- Reto de entrevista: memoize (caché de resultados)20m60
- Reto de entrevista: throttle (controlar el caudal)25m100
- Reto de entrevista: debounce (el jefe final)25m100