Curso de Programación en JavaScript
Bienvenido al Curso completo de JavaScript moderno, actualizado a ECMAScript 2026, la última versión del estándar. Este curso está diseñado para personas que nunca han programado antes y quieren aprender desde cero hasta un nivel profesional el lenguaje de la web, tanto en el navegador como en el servidor con Node.js.
💡 Consejo: JavaScript trabaja sobre páginas web. Si todavía no conoces HTML y CSS, te recomendamos empezar por el Curso de HTML5, CSS3 y Bootstrap (al menos sus módulos de HTML).
¿Qué vas a aprender?
Al finalizar este curso serás capaz de:
- Comprender qué es JavaScript, cómo se ejecuta y qué es ECMAScript
- Dominar los fundamentos: variables, tipos, operadores, estructuras de control y funciones
- Trabajar con arrays, objetos, cadenas y expresiones regulares con la sintaxis más moderna
- Programar orientado a objetos con prototipos y clases (campos privados,
static, herencia) - Gestionar errores de forma robusta
- Usar
Map,Set, iteradores, generadores e iterator helpers - Dominar la asincronía: event loop, promesas y
async/await - Organizar el código con módulos ES
- Manipular el DOM, gestionar eventos y validar formularios
- Consumir APIs REST con
fetchy usar las APIs del navegador (almacenamiento, observers, workers…) - Trabajar con fechas e internacionalización (
IntlyTemporal) - Desarrollar con Node.js, npm y Vite
- Escribir código de calidad con ESLint, Prettier, JSDoc/TypeScript y tests con Vitest
- Construir y publicar una aplicación web completa
Versión del curso
El curso utiliza JavaScript moderno según ECMAScript 2026 (aprobado en junio de 2026) y Node.js 24 LTS (o Node.js 26, que pasa a LTS a finales de octubre de 2026). Todos los ejemplos funcionan en las versiones actuales de Chrome, Edge, Firefox y Safari.
Estructura del curso
El curso se divide en 23 módulos organizados de forma progresiva:
Bloque 1: Fundamentos del lenguaje (Módulos 00-08)
| Módulo | Tema | Descripción |
|---|---|---|
| 00 | Introducción | Qué es JavaScript, historia, ECMAScript y TC39, motores, dónde se ejecuta |
| 01 | Entorno de desarrollo | Navegador y DevTools, VS Code, Node.js, la etiqueta script, primer programa |
| 02 | Variables y tipos de datos | let, const, var, tipos primitivos, typeof, conversiones, BigInt, Symbol |
| 03 | Operadores | Aritméticos, comparación, == frente a ===, lógicos, ??, ?., asignación lógica |
| 04 | Estructuras de control | if/else, switch, for, while, do-while, for…of, for…in, break y continue |
| 05 | Funciones | Declaraciones, expresiones, arrow functions, parámetros, ámbito, closures, hoisting |
| 06 | Arrays | Métodos esenciales, map/filter/reduce, métodos inmutables, Object.groupBy, desestructuración |
| 07 | Objetos | Literales, propiedades, métodos, this, desestructuración, spread, JSON, structuredClone |
| 08 | Cadenas y expresiones regulares | Template literals, métodos de String, Unicode, expresiones regulares, RegExp.escape |
Bloque 2: JavaScript avanzado (Módulos 09-13)
| Módulo | Tema | Descripción |
|---|---|---|
| 09 | POO: prototipos y clases | Prototipos, clases, campos privados, static, getters/setters, herencia |
| 10 | Gestión de errores | try/catch/finally, tipos de Error, cause, errores personalizados, Error.isError |
| 11 | Colecciones, iteradores y generadores | Map, Set y sus nuevos métodos, WeakMap, iteradores, generadores, iterator helpers |
| 12 | Asincronía | Event loop, callbacks, promesas, async/await, combinadores, AbortController |
| 13 | Módulos | Módulos ES, import/export, import dinámico, import maps, import attributes |
Bloque 3: JavaScript en el navegador (Módulos 14-18)
| Módulo | Tema | Descripción |
|---|---|---|
| 14 | El DOM | Árbol DOM, seleccionar, crear, modificar y eliminar elementos, atributos, clases y estilos |
| 15 | Eventos | addEventListener, objeto Event, propagación, delegación, teclado y ratón |
| 16 | Formularios y validación | FormData, Constraint Validation API, validación personalizada, envío |
| 17 | Fetch y APIs REST | HTTP, fetch, JSON, gestión de errores, cancelación, CORS, CRUD contra una API |
| 18 | APIs del navegador | localStorage, IndexedDB, geolocalización, Intersection Observer, portapapeles, Web Workers |
Bloque 4: JavaScript profesional (Módulos 19-22)
| Módulo | Tema | Descripción |
|---|---|---|
| 19 | Fechas e internacionalización | Date, Temporal, Intl.NumberFormat, DateTimeFormat, RelativeTimeFormat |
| 20 | Node.js, npm y Vite | Node.js, npm, package.json, módulos node:, servidor HTTP, herramientas de build con Vite |
| 21 | Calidad y testing | ESLint, Prettier, JSDoc, introducción a TypeScript, tests con Vitest |
| 22 | Proyecto final | Aplicación web completa con módulos, fetch, almacenamiento y tests, publicada en GitHub Pages |
Requisitos
- Ningún conocimiento previo de programación (se recomiendan nociones básicas de HTML y CSS)
- Un ordenador con Windows, macOS o Linux
- Un navegador moderno (Chrome, Firefox, Edge o Safari)
- Visual Studio Code y Node.js (se explica su instalación en el módulo 01)
Convenciones utilizadas
A lo largo del curso encontrarás estos indicadores:
📘 Concepto: Explicación teórica de un concepto importante.
💻 Ejemplo: Código de ejemplo que puedes copiar y ejecutar.
✏️ Ejercicio: Práctica para que resuelvas por tu cuenta.
⚠️ Importante: Información crucial que debes recordar.
💡 Consejo: Trucos y buenas prácticas profesionales.
Table of contents
- 00 - Introducción
- 01 - Entorno de desarrollo
- 02 - Variables y tipos de datos
- 03 - Operadores
- 04 - Estructuras de control
- 05 - Funciones
- 06 - Arrays
- 07 - Objetos
- 08 - Cadenas y expresiones regulares
- 09 - POO: prototipos y clases
- 10 - Gestión de errores
- 11 - Colecciones, iteradores y generadores
- 12 - Asincronía
- 13 - Módulos
- 14 - El DOM
- 15 - Eventos
- 16 - Formularios y validación
- 17 - Fetch y APIs REST
- 18 - APIs del navegador
- 19 - Fechas e internacionalización
- 20 - Node.js, npm y Vite
- 21 - Calidad y testing
- 22 - Proyecto final