JavaScript Moderno
Desde cero: HTML, CSS y JavaScript aplicados sobre interfaces reales, con explicaciones paso a paso y laboratorios donde tú escribes solo la lógica.
Programa de 10 capítulos pensado para empezar sin conocimientos previos: cada concepto (etiquetas, padding, variables, eventos, promesas…) se explica antes de practicarlo. Los laboratorios DOM traen una interfaz HTML preparada (inputs, tarjetas, botones, mensajes): tu trabajo es escribir el JavaScript que la selecciona y la transforma. Proyecto transversal: Factura Fácil.
9 capítulos · 170 laboratorios · ~44 h · US$7.99, pago único. El primer capítulo es gratis.
Lo que vas a poder hacer
- Conectar JavaScript con HTML y CSS mediante el DOM.
- Responder a eventos y validar formularios sin recargar la página.
- Consumir APIs con fetch y manejar la asincronía con async/await.
- Construir componentes básicos con React.
- Publicar y defender un proyecto completo.
Temario
Capítulo 1 · HTML, CSS y Git (gratis)
Estructura HTML, CSS responsive con Flexbox y Grid, y control de versiones con Git. Primer proyecto.
- Lección: ¿Qué es una página web? (10 min)
- Lección: HTML desde cero: etiquetas, atributos y estructura (25 min)
- Laboratorio: Completa: el enlace y la imagen (5 min)
- Laboratorio: Completa: los atributos que faltan (5 min)
- Laboratorio: Ordena: una lista de servicios (5 min)
- Laboratorio: Barra de navegación con tres enlaces (10 min)
- Quiz: Comprueba: HTML (5 min)
- Lección: CSS desde cero: reglas, selectores, colores y texto (25 min)
- Laboratorio: Completa: tu primera regla CSS (5 min)
- Laboratorio: Tarjeta con sombra (12 min)
- Laboratorio: Título con estilo (10 min)
- Lección: El modelo de caja: padding, borde y margen (20 min)
- Laboratorio: Completa: el modelo de caja (6 min)
- Laboratorio: Caja con padding, borde y margen (12 min)
- Lección: Flexbox y Grid paso a paso (25 min)
- Laboratorio: Completa: centrar con Flexbox (6 min)
- Laboratorio: Completa: tres columnas con Grid (6 min)
- Laboratorio: Tarjeta de presentación con Flexbox (20 min)
- Laboratorio: Galería responsive con Grid (15 min)
- Lección: Git y GitHub desde cero (20 min)
- Laboratorio: Tabla de precios (12 min)
- Laboratorio: Formulario de contacto (12 min)
- Quiz: Comprueba: CSS y Git (5 min)
- Enlace: Git y GitHub: guía de inicio (5 min)
- Lección: Glosario del curso (5 min)
- Quiz: Quiz · HTML, CSS y Git (10 min)
Capítulos 2-3 · Fundamentos de JavaScript (en el curso completo)
Variables, tipos, conversiones, operadores, template literals, condicionales y funciones. Las dos unidades se cubrieron juntas.
- Lección: ¿Qué es JavaScript y dónde se escribe? (15 min)
- Lección: Variables y tipos de datos (20 min)
- Laboratorio: Completa: const o let (6 min)
- Laboratorio: Saludo personalizado (8 min)
- Lección: Conversiones de tipos (15 min)
- Laboratorio: Arma la línea: de texto a número (5 min)
- Laboratorio: De texto a número (8 min)
- Lección: Operadores y expresiones (15 min)
- Laboratorio: Subtotal de compra (8 min)
- Lección: Condicionales: tomar decisiones (15 min)
- Laboratorio: Ordena: ¿aprobó? (6 min)
- Quiz: Comprueba: variables y tipos (5 min)
- Laboratorio: Mayor de edad (10 min)
- Lección: Funciones: reutilizar lógica (20 min)
- Laboratorio: Completa: una función flecha (5 min)
- Laboratorio: Función de descuento (12 min)
- Laboratorio: Clasificar temperatura (8 min)
- Laboratorio: Resumen de factura con template literal (8 min)
- Laboratorio: Etiqueta de stock (8 min)
- Lección: Arrays y objetos: guardar varios datos (20 min)
- Laboratorio: Completa: el mensaje con template literal (5 min)
- Laboratorio: Completa: precios con descuento (6 min)
- Quiz: Comprueba: funciones y arrays (5 min)
- Laboratorio: Sumar los precios de un array (8 min)
- Laboratorio: Lista desde un array (10 min)
- Laboratorio: Tarjeta desde un objeto (10 min)
- Quiz: Quiz · Fundamentos de JavaScript (10 min)
Capítulo 4 · DOM (en el curso completo)
querySelector(), textContent, atributos, classList y la cotización visible de Factura Fácil.
- Lección: ¿Qué es el DOM? (12 min)
- Lección: Seleccionar elementos (15 min)
- Laboratorio: Completa: encontrar el título (5 min)
- Laboratorio: Completa: pintar de azul todos los títulos (6 min)
- Lección: Leer y modificar: texto, valores, atributos, clases y elementos nuevos (25 min)
- Laboratorio: Completa: leer lo que hay en la caja (5 min)
- Quiz: Comprueba: el DOM (5 min)
- Laboratorio: Completa: agregar un elemento a la lista (6 min)
- Laboratorio: Completa: encender el modo oscuro (5 min)
- Laboratorio: Completa: cambiar la imagen (5 min)
- Laboratorio: Arma la línea: crear un elemento (5 min)
- Laboratorio: Ordena: pintar la lista desde un array (6 min)
- Quiz: Comprueba: crear y modificar elementos (5 min)
- Laboratorio: Cambiar el título (5 min)
- Laboratorio: Imagen dinámica (6 min)
- Laboratorio: Enlace externo seguro (6 min)
- Laboratorio: Modo oscuro (5 min)
- Laboratorio: Lista de servicios desde un array (12 min)
- Laboratorio: Tarjetas de productos (15 min)
- Laboratorio: Contador de caracteres (5 min)
- Laboratorio: Tareas completadas (10 min)
- Laboratorio: Sumar la columna de precios (12 min)
- Laboratorio: Resaltar los servicios caros (12 min)
- Laboratorio: Cotización visible · Factura Fácil (20 min)
- Quiz: Quiz · DOM (10 min)
Capítulo 5 · Eventos y formularios (en el curso completo)
addEventListener(), clics, eventos de formulario, preventDefault() y validación. Incluye el primer parcial.
- Lección: Eventos desde cero (20 min)
- Laboratorio: Completa: que el botón responda (6 min)
- Laboratorio: Arma la línea: escuchar el clic (6 min)
- Laboratorio: Completa: contar mientras se escribe (6 min)
- Laboratorio: Completa: el total al elegir cantidad (6 min)
- Laboratorio: Completa: un solo escuchador para todos los botones (7 min)
- Quiz: Comprueba: eventos (5 min)
- Lección: Formularios: enviar sin recargar y validar (20 min)
- Laboratorio: Completa: que el formulario no recargue (6 min)
- Laboratorio: Completa: leer lo que se escribió (6 min)
- Laboratorio: Ordena: enviar sin recargar (6 min)
- Quiz: Comprueba: formularios (5 min)
- Laboratorio: Botón que saluda (8 min)
- Laboratorio: Validar que no falte nada (15 min)
- Laboratorio: Contador de caracteres con aviso (15 min)
- Laboratorio: Contador con botones (8 min)
- Laboratorio: Mostrar u ocultar contraseña (8 min)
- Laboratorio: Enviar sin recargar (10 min)
- Laboratorio: Filtrar la lista mientras se escribe (15 min)
- Laboratorio: Botón que se bloquea al enviar (12 min)
- Laboratorio: Total según la cantidad (12 min)
- Laboratorio: Validar correo (10 min)
- Laboratorio: Total en tiempo real (8 min)
- Laboratorio: Factura Fácil: calcular al hacer clic (15 min)
- Laboratorio: Lista de compras (12 min)
- Examen: Primer parcial · Capítulos 1-5 (45 min)
Capítulo 6 · JavaScript asíncrono (en el curso completo)
Temporizadores, promesas, async/await y manejo de errores aplicados a eventos y formularios: botones que esperan, envíos con validación, búsquedas con debounce y varias peticiones a la vez. Repasa el Capítulo 5 mientras avanzas.
- Lección: Síncrono y asíncrono: por qué existe la asincronía (15 min)
- Laboratorio: ¿En qué orden se imprime? (6 min)
- Lección: Temporizadores: setTimeout, setInterval y cómo detenerlos (15 min)
- Laboratorio: Completa: hacer algo más tarde (5 min)
- Laboratorio: Completa: repetir y detener (6 min)
- Laboratorio: Aviso que desaparece (12 min)
- Laboratorio: Cuenta regresiva con inicio y detención (15 min)
- Lección: Promesas (18 min)
- Laboratorio: Completa: fabricar una promesa (7 min)
- Laboratorio: Ordena: encadenar con then (6 min)
- Quiz: Comprueba: promesas (5 min)
- Laboratorio: Promesa con retraso (8 min)
- Laboratorio: Encadenar con then (8 min)
- Lección: async/await y manejo de errores (20 min)
- Laboratorio: Completa: esperar el resultado (6 min)
- Quiz: Comprueba: asincronía (5 min)
- Laboratorio: Arma la línea: esperar los datos (5 min)
- Laboratorio: Completa: pase lo que pase (6 min)
- Laboratorio: async/await con try/catch (10 min)
- Laboratorio: Cargando… (10 min)
- Laboratorio: Error visible (10 min)
- Lección: Eventos que esperan: botones, estados y delegación (18 min)
- Laboratorio: Guardar sin doble clic (12 min)
- Laboratorio: Favoritos con delegación de eventos (15 min)
- Laboratorio: Municipios según la provincia (15 min)
- Lección: Formularios asíncronos: validar, enviar y responder (20 min)
- Laboratorio: Registro con validación y servidor (20 min)
- Lección: Buscar mientras escribes: input y debounce (15 min)
- Laboratorio: Buscador con espera (debounce) (15 min)
- Lección: Varias promesas a la vez: all, allSettled, race y reintentos (18 min)
- Laboratorio: Completa: pedir tres cosas a la vez (7 min)
- Laboratorio: Varias promesas con Promise.all (12 min)
- Laboratorio: Panel con Promise.allSettled (15 min)
- Laboratorio: Tiempo límite con Promise.race (10 min)
- Laboratorio: Reintentar hasta que funcione (10 min)
- Laboratorio: Factura Fácil: guardar la cotización (25 min)
- Quiz: Quiz · Asíncrono (20 min)
Capítulo 7 · APIs REST (en el curso completo)
fetch(), JSON, consumo de datos y renderizado de tarjetas o listas.
- Lección: ¿Qué es una API REST? (15 min)
- Lección: Errores y códigos de estado: 200, 404 y 500 (18 min)
- Laboratorio: Completa: pedir los productos (6 min)
- Laboratorio: Arma la línea: pedir y esperar (5 min)
- Laboratorio: Contar los productos del catálogo (12 min)
- Lección: fetch paso a paso (20 min)
- Laboratorio: Ordena: los pasos de una llamada (7 min)
- Laboratorio: Completa: avisar cuando no existe (6 min)
- Quiz: Comprueba: fetch (5 min)
- Laboratorio: El producto más caro (15 min)
- Laboratorio: Buscar con aviso de no encontrado (15 min)
- Laboratorio: Mostrar «Cargando…» y quitarlo (12 min)
- Laboratorio: Consumir una API (15 min)
- Lección: Enviar datos a una API: POST, PUT y DELETE (18 min)
- Laboratorio: Completa: solo los nombres del catálogo (6 min)
- Laboratorio: Solo los productos baratos (12 min)
- Laboratorio: Completa: registrar un pedido (7 min)
- Laboratorio: Completa: sobrevivir a un fallo de red (6 min)
- Laboratorio: Catálogo con total (15 min)
- Laboratorio: Ficha del usuario 1 (12 min)
- Quiz: Comprueba: REST (5 min)
- Laboratorio: Tarjetas de usuarios (15 min)
- Laboratorio: Buscar usuario por id (15 min)
- Laboratorio: Estado de carga (15 min)
- Quiz: Quiz · APIs REST (8 min)
Capítulo 8 · React (en el curso completo)
Componentes, JSX, props y estado básico.
- Lección: React: por qué existe y cómo se piensa (25 min)
- Lección: JSX: HTML dentro de JavaScript (18 min)
- Laboratorio: Completa: tu componente saluda (6 min)
- Laboratorio: Ordena: las partes de un componente (6 min)
- Laboratorio: Completa: pasar datos con props (6 min)
- Laboratorio: Tarjeta de producto con props (15 min)
- Quiz: Comprueba: componentes y props (5 min)
- Laboratorio: Tu primer componente (15 min)
- Laboratorio: Completa: una lista con map (7 min)
- Laboratorio: Lista de tareas con map (15 min)
- Laboratorio: Lista de productos desde un array de objetos (15 min)
- Laboratorio: Lista con props (12 min)
- Lección: Estado y eventos en React: useState paso a paso (20 min)
- Laboratorio: Arma la línea: declarar el estado (6 min)
- Laboratorio: Completa: el contador que sí cambia (7 min)
- Laboratorio: Contador con sumar y restar (15 min)
- Laboratorio: Mostrar y ocultar los detalles (15 min)
- Laboratorio: Contador con useState (15 min)
- Laboratorio: Completa: escribir y ver al instante (8 min)
- Laboratorio: Completa: mostrar solo si está disponible (7 min)
- Laboratorio: Campo controlado con contador (15 min)
- Laboratorio: Filtrar la lista con estado (18 min)
- Laboratorio: Agregar tareas con React (20 min)
- Quiz: Comprueba: estado (5 min)
- Quiz: Quiz · React (8 min)
Capítulo 9 · APIs del navegador (en el curso completo)
Local Storage, geolocalización, Canvas y multimedia. Incluye el segundo parcial.
- Lección: APIs del navegador: almacenamiento, ubicación, dibujo y multimedia (25 min)
- Lección: Guardar datos en el navegador: localStorage paso a paso (18 min)
- Laboratorio: Completa: guardar y recuperar el nombre (5 min)
- Laboratorio: Arma la línea: guardar el tema (5 min)
- Laboratorio: Completa: guardar una lista (6 min)
- Laboratorio: Completa: un valor por defecto (6 min)
- Laboratorio: Ordena: recordar el tema elegido (7 min)
- Quiz: Comprueba: almacenamiento (5 min)
- Laboratorio: Lista de tareas que no se pierde (18 min)
- Laboratorio: Contador de visitas (10 min)
- Laboratorio: Guardar el tema (8 min)
- Lección: Fechas, monedas y enlaces con datos (16 min)
- Laboratorio: Completa: precio en pesos dominicanos (6 min)
- Laboratorio: Completa: leer los datos del enlace (5 min)
- Laboratorio: Precios con formato dominicano (12 min)
- Laboratorio: Mostrar la categoría del enlace (12 min)
- Laboratorio: Recordar el nombre (8 min)
- Laboratorio: Geolocalización (10 min)
- Laboratorio: Dibujar en Canvas (10 min)
- Laboratorio: Completa: dibujar un rectángulo (6 min)
- Laboratorio: Gráfico de barras en canvas (18 min)
- Quiz: Comprueba: APIs del navegador (5 min)
- Laboratorio: Control de audio (10 min)
- Laboratorio: Reproductor con estado (12 min)
- Examen: Segundo parcial · Capítulos 6-9 (45 min)
Capítulo 10 · Cierre y publicación (en el curso completo)
Accesibilidad, buenas prácticas, GitHub, deploy y defensa del proyecto final.
- Lección: Accesibilidad y buenas prácticas (20 min)
- Lección: HTML semántico: elegir la etiqueta correcta (18 min)
- Laboratorio: Completa: las etiquetas que dicen algo (5 min)
- Laboratorio: Completa: los títulos en orden (5 min)
- Laboratorio: Ordena: la estructura de la página (6 min)
- Laboratorio: Completa: la etiqueta y su campo (5 min)
- Laboratorio: Completa: lo que oye un lector de pantalla (5 min)
- Laboratorio: Arma la línea: nombrar el botón del menú (5 min)
- Quiz: Comprueba: accesibilidad (5 min)
- Laboratorio: Accesibilidad básica (8 min)
- Laboratorio: Completa: un menú que avisa si está abierto (7 min)
- Laboratorio: Formulario accesible de principio a fin (16 min)
- Laboratorio: Una tabla que se lee bien (14 min)
- Laboratorio: Menú accesible con teclado (16 min)
- Lección: Publicar con GitHub Pages (15 min)
- Lección: Que cargue rápido y se encuentre (16 min)
- Laboratorio: Completa: el idioma y la descripción (5 min)
- Laboratorio: Completa: una imagen que no frena la página (5 min)
- Laboratorio: Metadatos para compartir el proyecto (12 min)
- Laboratorio: La página de inicio, bien estructurada (18 min)
- Laboratorio: Modo claro y oscuro que se recuerda (18 min)
- Quiz: Comprueba: rendimiento y publicación (5 min)
- Enlace: GitHub Pages: documentación oficial (5 min)
- Lección: Defensa del proyecto final (10 min)
- Quiz: Quiz · Cierre y publicación (8 min)
Antes de empezar
- Ganas de teclear: cada clase tiene varios retos prácticos.
- Navegador moderno (Chrome, Edge o Firefox).
Prueba la primera lección gratis, sin crear cuenta
También en: English