Skills que aprenderás
Convocatorias
No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.
Recursos
No hay recursos disponibles todavía para esta convocatoria
Este curso está dirigido a desarrolladores que ya dominan los fundamentos de JavaScript y quieren consolidar un perfil intermedio capaz de afrontar código real de mayor complejidad. A lo largo de ocho horas de trabajo práctico, el participante profundizará en los mecanismos internos del lenguaje —cierres, el comportamiento de this, la asincronía y las estructuras de datos modernas— y los aplicará de forma integrada en situaciones concretas: consumir una API REST, modularizar funcionalidades reutilizables y depurar problemas habituales con las herramientas del navegador. Al finalizar, el participante será capaz de escribir y mantener código JavaScript asíncrono, organizado en módulos y libre de los errores más frecuentes asociados a variables capturadas, delegación de eventos y promesas no resueltas.
this en distintos contextos de ejecución (método de objeto, callback y arrow function) y razonar sobre la regla léxica o de invocación aplicada en cada caso.Map/Object y Set/Array ante un problema concreto de datos, seleccionando y justificando la opción más adecuada en función de la semántica y las operaciones necesarias.async/await y manejo explícito de errores mediante try/catch, sin bloquear el hilo principal.import/export que encapsule una funcionalidad reutilizable, exponiendo solo la API pública necesaria.Bloque 1 — Mecanismos internos del lenguaje
Se estudia en profundidad cómo JavaScript resuelve el valor de this según el contexto de invocación: llamada como método de objeto, uso dentro de callbacks y comportamiento especial de las arrow functions, que capturan this del entorno léxico en lugar de definirlo en la invocación. A continuación se analiza el mecanismo de cierre (closure): qué variables quedan capturadas en el entorno léxico de una función, por qué esto puede producir comportamientos inesperados en bucles y cómo corregirlos de forma razonada. El bloque cierra con la comparación entre estructuras de datos modernas —Map frente a Object y Set frente a Array— examinando las diferencias semánticas y de rendimiento que determinan la elección adecuada para cada caso de uso.
Bloque 2 — Asincronía y control de errores
Este bloque aborda la asincronía como eje central del JavaScript moderno. Se parte de funciones síncronas de consulta de datos y se recorre el proceso de adaptarlas a async/await, incorporando bloques try/catch para capturar rechazos de promesas sin bloquear el hilo principal. Se profundiza en los problemas más habituales en código asíncrono —race conditions y promesas que nunca se resuelven— y se practica su detección y corrección usando el call stack y la pestaña Network de las DevTools del navegador.
Bloque 3 — DOM, eventos y comunicación con APIs
Se revisa la delegación de eventos como estrategia eficiente para gestionar listas de elementos dinámicos: en lugar de registrar un listener en cada nodo, se captura el evento en el ancestro común y se discrimina el origen con event.target. Seguidamente se trabaja el consumo de APIs REST mediante la Fetch API: encadenamiento de la transformación de la respuesta a JSON, propagación y manejo de errores de red, y renderizado de los datos obtenidos en el DOM sin dejar excepciones no controladas.
Bloque 4 — Módulos ES y arquitectura de código
El curso concluye con la organización del código en módulos ES nativos. Se diseña un módulo que encapsula una funcionalidad reutilizable —utilidades de formateo o validación— exponiendo únicamente la interfaz pública mediante export e importándola desde otros archivos con import. Se discuten las implicaciones de esta separación de responsabilidades para la mantenibilidad y la colaboración en equipo, cerrando el curso con un ejercicio integrador que combina asincronía, delegación de eventos y módulos en un mini-proyecto funcional.
Para aprovechar este curso el participante debe haber completado JJS01 — JavaScript Iniciación o demostrar un dominio equivalente de los siguientes conceptos: sintaxis ES6+ (variables con let/const, arrow functions, destructuring, template literals), manipulación básica del DOM, uso de funciones de orden superior (map, filter, reduce) y comprensión elemental del modelo de eventos del navegador.