logoUC
📚Curso disponible

JavaScript

Da el salto al desarrollo web dinámico aprendiendo JavaScript, el lenguaje que da vida a las páginas web. Crea interactividad, automatiza acciones y transforma ideas en experiencias digitales reales, paso a paso y desde cero.

54
Módulos

Contenido del curso

Tema 1 - Entorno de Trabajo para Javascript Puro

6 lecciones
1.1. Archivos .JS Externos
1.2. El Navegador como Entorno de Ejecución
1.3. DevTools y Consola
1.4. ¿Por qué JS Externo y No en Línea?
Teoría - MANUAL
Ejercicio

Tema 2 - Introducción al Lenguaje

9 lecciones
2.1. ¿Qué es JavaScript?
2.2. Primera línea de código
2.3. Comentarios en JavaScript
2.4. Uso del punto y coma
2.5. Integración con HTML (avance conceptual)
MANUAL I - Introducción a JavaScript
MANUAL II - Fundamentos y buenas prácticas
Ejercicio 1
Ejercicio 2

Tema 3 - Tipos de Datos Primitivos - String

16 lecciones
3.1. ¿Qué es un String en Javascript?
3.2. Declaración de Strings
3.3. Concatenación de Strings
3.4. Template Literals
3.5. Longitud de un String
3.6. Acceder a Caracteres Individuales
3.7. Métodos Básicos de String
3.8. Buscar Dentro de un String
3.9. Cortar y Extraer Partes de un String
3.10. Reemplazar Contenido en un String
MANUAL I - Strings y template literals
MANUAL II - Características de los String
MANUAL III - Métodos para Strings
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 4 - Tipos de Datos Primitivos - Number

15 lecciones
4.1. ¿Qué es un Number en Javascript?
4.2. Enteros y Decimales
4.3. Notación Científica y Grandes Números
4.4. Métodos y Propiedades Útiles
4.5. Conversión entre Tipos
4.6. Comparación de Números
4.7. Peculiaridades de la Aritmética en JS
4.8. Math Básico
4.9. Buenas Prácticas al Trabajar con Números
MANUAL I - Tipos de datos
MANUAL II - Métodos, conversión de tipos y comparación de números
MANUAL III - Math y buenas prácticas
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 5 - Tipos de Datos Primitivos - Boolean

16 lecciones
5.1. ¿Qué es un Boolean en Javascript?
5.2. ¿Cómo Declarar y Asignar un Boolean?
5.3. Booleans y Valores Truthy_Falsy
5.4. Conversión Explícita a Boolean
5.5 Booleans en Propiedades y Estados
5.6. Booleans en Arrays y Objetos
5.7. Buenas Prácticas de Nomenclatura Booleana
5.8. El Valor por Defecto de Booleans
5.9. Visualización en Consola y Depuración
5.10. Casos Reales de Uso sin Condicionales
MANUAL I - Booleans
MANUAL II - Booleans: Buenas prácticas
MANUAL III - El valor por defecto de booleans
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 6 - Tipos de Datos Primitivos - Undefined

16 lecciones
6.1. ¿Qué es undefined en JavaScript?
6.2. Cuándo aparece undefined
6.3. Comparación con null
6.4. Uso de typeof con undefined
6.5. Undefined en funciones
6.6. Propiedades undefined de objetos
6.7. Undefined en arrays
6.8. Evitar undefined no deseado
6.9. Conversión de undefined
6.10. Buenas prácticas con undefined
MANUAL I - Undefined
MANUAL II - Undefined en funciones, arrays y como propiedad
MANUAL III - Buenas prácticas con undefined
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 7 - Tipos de Datos Primitivos - Null

16 lecciones
7.1. ¿Qué es null en JavaScript?
7.2. Cuándo usar null
7.3. null vs undefined
7.4. Conversión de null
7.5. Uso en estructuras de datos
7.6. Typeof null
7.7. Inicialización con null como buena práctica
7.8. Null como valor de "reinicio"
7.9. Depuración de null en consola
7.10. Buenas prácticas con null
MANUAL I - Null, Null vs Undefined y Conversion
MANUAL II - Estructura, tipos de null, inicialización
MANUAL III - Valor de reinicio, depuración y buenas prácticas
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 8 - Tipos de Datos Primitivos - Symbol

16 lecciones
8.1. ¿Qué es un symbol en JavaScript?
8.2. Crear un symbol
8.3. Unicidad de los symbol
8.4. Uso de symbol como clave de propiedad
8.5. Símbolos y la privacidad de propiedades
8.6. Conversión a string
8.7. Symbol.for y Symbol.keyFor
8.8. typeof y comprobación de tipo
8.9. Buenas prácticas con symbol
8.10. Visualización y depuración
MANUAL I - Symbol y unicidad
MANUAL II - Clave de propiedad, Privacidad y Conversión a String
MANUAL III - Symbol.for, typeof, buenas prácticas y visualización y depuración
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 9 - Tipos de Datos Primitivos - BigInt

15 lecciones
9.1. ¿Qué es BigInt?
9.2. Cómo crear un BigInt
9.3. Operaciones básicas con BigInt
9.4. Comparativa con Number
9.5. Conversión entre BigInt y Number
9.6. Limitaciones de BigInt
9.7. Uso en objetos y arrays
9.8. Buenas prácticas con BigInt
9.9. ¿Dónde se usa BigInt en el mundo real?
MANUAL I - BigInt y Operaciones básicas
MANUAL II - Number vs BigInt, conversión y limitaciones
MANUAL III - Uso en Objetos y Arrays, visualización y depuración y buenas prácticas
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 10 - Tipos de Datos Complejos - Arrays (Listas)

16 lecciones
10.1. ¿Qué es un Array?
10.2. Crear un Array
10.3. Acceder a los elementos
10.4. Propiedad length
10.5. Añadir y eliminar elementos
10.6. Arrays heterogéneos
10.7. Arrays anidados (arrays dentro de arrays)
10.8. Métodos básicos útiles (sin recorrer aún)
10.9. Copiar un array
10.10. Buenas prácticas con arrays
MANUAL I - Arrays
MANUAL II - Lenght, añadir y eliminar elementos, Arrays Heterogéneos y Arrays Anidados
MANUAL III - Métodos, Copiar un Array y Buenas Prácticas
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 11 - Tipos de Datos Complejos - Object (Colecciones Clave-Valor)

16 lecciones
11.1. ¿Qué es un Object?
11.2. Crear un Object
11.3. Acceso a propiedades
11.4. Modificar y añadir propiedades
11.5. Eliminar propiedades
11.6. Anidar objetos
11.7. Métodos básicos del objeto
11.8. Copiar un objeto
11.9. Uso de propiedades dinámicas
11.10. Buenas prácticas con objetos
MANUAL I - Dominando Objetos en JavaScript: Creación, Manipulación y Buenas Prácticas
MANUAL II - Dominando Objetos en JavaScript: Creación, Manipulación y Anidación
MANUAL III - Gestión Avanzada de Objetos en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 12 - Tipos de Datos Complejos - Date (Fechas)

16 lecciones
12.1. ¿Qué es el objeto Date?
12.2. Crear fechas específicas
12.3. Obtener partes de la fecha
12.4. Modificar partes de la fecha
12.5. Trabajar con timestamps
12.6. Métodos útiles de Date
12.7. Operaciones simples con fechas
12.8. Validar fechas
12.9. Zonas horarias
12.10. Buenas prácticas con fechas
MANUAL I - Validación y Manejo de Fechas en JavaScript
MANUAL II - Manejo Profesional de Fechas y Horas en JavaScript
MANUAL III - Manipulación y Validación de Fechas en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 13 - Condicionales y Comparaciones en Profundidad

21 lecciones
13.1. ¿Qué es un condicional y para qué sirve?
13.2. Sintaxis básica de if
13.3. Operadores de comparación (parte 1: números)
13.4. Operadores de comparación (parte 2: igualdad)
13.5. Operadores de comparación (parte 3: cadenas de texto)
13.6. Comparaciones en listas (arrays)
13.7. Uso de else
13.8. Uso de else if
13.9. Operadores lógicos && y ||
13.10. Condicional ternario
13.11. Comparaciones con null y undefined
13.12. Comparaciones booleanas explícitas e implícitas
13.13. Anidamiento de condicionales
13.14. Comparaciones avanzadas en estructuras
13.15. Buenas prácticas al escribir condicionales
MANUAL I - Dominando los Operadores y Condicionales en JavaScript
MANUAL III - Dominando las Comparaciones y Condicionales en JavaScript
MANUAL II - Dominando Condicionales y Operadores de Comparación en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 14 - Condicional Switch (Cuando hay muchas opciones)

16 lecciones
14.1. ¿Qué es un switch y cuándo se usa?
14.2. Sintaxis básica de switch
14.3. El default
14.4. Comparación estricta en switch
14.5. Agrupación de casos
14.6. Fall through (comportamiento por defecto sin break)
14.7. switch con strings
14.8. switch con booleanos (caso raro pero posible)
14.9. switch anidado
14.10. Buenas prácticas con switch
MANUAL I - Dominando el Control de Flujo con Switch en JavaScript
MANUAL II - Dominando el Uso de Switch en JavaScript: Efecto Cascada, Buenas Prácticas y Anidamiento
MANUAL III - Dominando Switch, Default y Booleanos en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 15 - Bucle For - El Ciclo Controlado

16 lecciones
15.1. ¿Qué es un bucle y por qué usar for?
15.2. Sintaxis básica de un for
15.3. Control de la variable de iteración
15.4. Bucle for con incremento distinto
15.5. Uso del for con arrays
15.6. Salir de un bucle antes (uso de break)
15.7. Saltar una iteración (uso de continue)
15.8. Bucle for sin cuerpo
15.9. Errores comunes en el for
15.10. Buenas prácticas al usar for
MANUAL I - Dominando Bucles y Errores Comunes en JavaScript
MANUAL II - Dominando Bucles en JavaScript: For, Break y Continue
MANUAL III - Dominando los Bucles 'for' en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 16 - Bucle While - Repetir Mientras La Condición Sea Cierta

16 lecciones
16.1. ¿Qué es un bucle while?
16.2. Sintaxis básica de while
16.3. while con contador (simular un for)
16.4. Validación de entrada con while
16.5. Salir del while antes (uso de break)
16.6. Saltar una iteración (continue en while)
16.7. Condiciones complejas en while
16.8. Bucle infinito y cómo evitarlo
16.9. while sin cuerpo
16.10. Buenas prácticas con while
MANUAL I - Dominando los Bucles While en JavaScript: Sintaxis, Uso y Prevención de Bucles Infinitos
MANUAL II - Dominando Bucles y Condiciones Avanzadas en JavaScript
MANUAL III - Dominando Bucles While y Break en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 17 - El Método ForEach - Recorrer Arrays de Forma Declarativa

15 lecciones
17.1. ¿Qué es forEach?
17.2. Acceder al índice
17.3. Acceder al array completo
17.4. Modificar elementos dentro del forEach
17.5. Usar forEach con arrays vacíos
17.6. forEach con arrays de objetos
17.7. Comparativa: forEach frente a otros bucles
17.8. Límites de forEach
17.9. Buenas prácticas con forEach
MANUAL I - Dominando forEach en JavaScript: Prácticas y Limitaciones
MANUAL II - Dominando Iteraciones en JavaScript: Índices, Arrays y Comparativas
MANUAL III - Dominando forEach en JavaScript: Iteraciones, Arrays Vacíos y Modificaciones
Ejercicio 1
Ejercicio 3
Ejercicio 2

Tema 18 - El Método MAP - Transformando Arrays en Nuevo Arrays

15 lecciones
18.1. ¿Qué es map?
18.2. Transformar números en un array
18.3. Transformar arrays de objetos
18.4. Uso del índice en map
18.5. map para crear arrays de elementos de JSX (opcional mención futura en React)
18.6. map con funciones externas
18.7. Errores comunes al usar map
18.8. map con condiciones
18.9. Buenas prácticas con map
MANUAL I - Dominando la Transformación de Arrays con JavaScript: Map y Condiciones
MANUAL II - Dominando el Método Map en JavaScript: Buenas Prácticas y Aplicaciones
MANUAL III - Dominando la Función Map en JavaScript para Transformaciones Efectivas
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 19 - El Método Filter - Filtrar Arrays Según Condiciones

15 lecciones
19.1. ¿Qué es filter?
19.2. Filtrar números en un array
19.3. Filtrar arrays de objetos
19.4. Uso del índice en filter
19.5. Filtrar con condiciones múltiples
19.6. filter con funciones externas
19.7. Errores comunes al usar filter
19.8. Filtrar arrays vacíos o sin coincidencias
19.9. Buenas prácticas con filter
MANUAL I - Filtrado Avanzado de Arrays con JavaScript y Funciones Externas
MANUAL II - Dominando el Método Filter en JavaScript: Usos, Errores y Buenas Prácticas
MANUAL III - Filtrado Avanzado y Buenas Prácticas en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 20 - El Método Reduce - Reducir un Array a un Solo Valor

15 lecciones
20.1. ¿Qué es reduce?
20.2. Sumar todos los números de un array
20.3. Multiplicar todos los números de un array
20.4. Concatenar strings
20.5. reduce en arrays de objetos
20.6. Uso de valor inicial
20.7. reduce para crear un objeto
20.8. Errores comunes al usar reduce
20.9. Buenas prácticas con reduce
MANUAL I - Dominando el Método Reduce() en JavaScript
MANUAL II - Dominando Arrays en JavaScript: Multiplicación, Reduce y Valor Inicial
MANUAL III - Dominando el Método Reduce en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 21 - Bucles For...In y For...OF - Iteración de Objetos y Colecciones

16 lecciones
21.1. ¿Qué es for...in?
21.2. ¿Qué es for...of?
21.3. Recorrer un objeto con for...in
21.4. Recorrer un array con for...of
21.5. Recorrer string con for...of
21.6. Evitar for...in en arrays
21.7. Combinando for...in y for...of
21.8. for...of con entries()
21.9. Errores comunes en estos bucles
21.10. Buenas prácticas al usar for...in y for...of
MANUAL I - Dominando los Bucles for...in y for...of en JavaScript
MANUAL II - Dominando Bucles for...in y for...of en JavaScript
MANUAL III - Dominando los Bucles for...in y for...of en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 22 - El Método Find - Buscar el Primer Elemento que Cumpla una Condición

15 lecciones
22.1. ¿Qué es find?
22.2. Buscar un número en un array
22.3. Buscar un string en un array
22.4. Buscar en un array de objetos
22.5. Qué pasa si no encuentra nada
22.6. Usar find con funciones declaradas
22.7. Errores comunes al usar find
22.8. Buenas prácticas con find
22.9. Casos donde find brilla
MANUAL I - Uso Profesional del Método Find en JavaScript
MANUAL II - Dominando la Búsqueda en Arrays con JavaScript
MANUAL III - Optimizando Búsquedas con el Método 'Find' en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 23 - Los Métodos Some y Every - Verificación de Condiciones en Arrays

16 lecciones
23.1. ¿Qué es some?
23.2. ¿Qué es every?
23.3. Sintaxis de ambos métodos
23.4. Uso práctico de some
23.5. Uso práctico de every
23.6. some en arrays de objetos
23.7. every en arrays de objetos
23.8. Qué pasa si el array está vacío
23.9. Errores comunes
23.10. Buenas prácticas con some y every
MANUAL I - Dominando los Métodos 'Some' y 'Every' en JavaScript
MANUAL II - Dominando los Métodos Array 'Some' y 'Every' en JavaScript
MANUAL III - Manejo Profesional de Arrays Vacíos y Métodos 'Every' y 'Some' en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 24 - Flat y FlatMap - Manipulación Avanzada de Arrays

16 lecciones
24.1. ¿Qué es flat?
24.2. Sintaxis básica de flat
24.3. Niveles de profundidad en flat
24.4. Aplanado completo con flat(Infinity)
24.5. ¿Qué es flatMap?
24.6. Sintaxis básica de flatMap
24.7. Usar flatMap para transformar y aplanar en arrays de objetos
24.8. Errores comunes con flat y flatMap
24.9. Buenas prácticas con flat y flatMap
24.10. Casos donde flat y flatMap son ideales
MANUAL I - Dominando flatMap y flat en JavaScript: Transformación, Aplanamiento y Errores Comunes
MANUAL II - Dominando flat y flatMap en JavaScript: Buenas Prácticas y Aplicaciones
MANUAL III - Dominando flat y flatMap en JavaScript para Arrays Anidados
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 25 - Set - Colecciones de Valores Únicos en Javascript

16 lecciones
25.1. ¿Qué es un Set?
25.2. Crear un Set
25.3. Añadir valores (add)
25.4. Eliminar valores (delete)
25.5. Verificar existencia (has)
25.6. Eliminar todo (clear)
25.7. Tamaño del Set
25.8. Iterar un Set
25.9. Convertir entre Set y array
25.10. Buenas prácticas y casos de uso
MANUAL I - Dominando los Sets en JavaScript: Operaciones y Buenas Prácticas
MANUAL II - Dominando Sets en JavaScript: Creación, Manipulación e Iteración
MANUAL III - Gestión de Sets en JavaScript: Creación, Verificación y Limpieza
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 26 - Fundamentos de las Funciones en Javascript

16 lecciones
26.1. ¿Qué es una función?
26.2. Declarar una función (función tradicional)
26.3. Llamar a una función
26.4. Parámetros y argumentos (introducción)
26.5. Retorno de valores (return)
26.6. Paso por valor (datos primitivos)
26.7. Paso por referencia (objetos y arrays)
26.8. Funciones como primera clase
26.9. Hoisting de funciones
26.10. Buenas prácticas al declarar funciones
MANUAL I - Dominando Funciones en JavaScript: Invocación, Parámetros, Argumentos y Buenas Prácticas
MANUAL II - Funciones en JavaScript: Retorno, Paso por Valor y Hoisting
MANUAL III - Funciones y Paso por Referencia en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 27 - Profundización en el Paso de Parámetros, Valores por Defecto y Retorno

16 lecciones
27.1. Parámetros y argumentos — diferencia clave
27.2. Orden de los parámetros y argumentos
27.3. Parámetros opcionales (undefined si no se pasa argumento)
27.4. Valores por defecto (ES6)
27.5. Parámetros dinámicos: arguments
27.6. Operador rest ...
27.8. Múltiples return en una función
27.7. Retorno explícito vs implícito
27.9. Retorno de objetos, arrays y funciones
27.10. Buenas prácticas al pasar y devolver datos
MANUAL I - Uso Avanzado de Funciones y Parámetros en JavaScript ES6
MANUAL II - Gestión Avanzada de Funciones y Parámetros en JavaScript
MANUAL III - Gestión Avanzada de Funciones y Retornos en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 28 - Funciones Expresión y Funciones Anónimas

16 lecciones
28.1. ¿Qué es una función expresión?
28.2. ¿Qué es una función anónima?
28.3. Hoisting en funciones expresión
28.4. Funciones expresión como callbacks
28.5. Sintaxis compacta vs detallada
28.6. Nombrar funciones expresión
28.7. Funciones expresión y ámbito de bloque
28.8. Uso habitual en programación moderna
28.9. Ventajas y limitaciones
28.10. Buenas prácticas con funciones expresión
MANUAL I - Dominando las Funciones Expresión en JavaScript: Prácticas, Sintaxis y Aplicaciones
MANUAL II - Dominando Funciones Expresión en JavaScript: Ámbito, Hoisting y Errores
MANUAL III - Dominando Funciones de Expresión y Anónimas en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 29 - Arrow Functions (Funciones Flecha) en Detalle

16 lecciones
29.1. ¿Qué es una arrow function?
29.2. Sintaxis con un solo parámetro
29.3. Sintaxis sin parámetros
29.4. Cuerpo con una sola expresión
29.5. Cuerpo con varias instrucciones
29.6. this en arrow functions
29.7. Arrow functions y objetos
23.8. Arrow functions como callbacks
29.9. Limitaciones de las arrow functions
29.10. Buenas prácticas en el uso de arrow functions
MANUAL I - Dominando las Arrow Functions en JavaScript
MANUAL II - Dominando las Arrow Functions en JavaScript
MANUAL III - Dominando las Arrow Functions en JavaScript: Sintaxis, Contexto y Limitaciones
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 30 - Closures en Javascript

16 lecciones
30.1. ¿Qué es un closure?
30.2. Ejemplo básico de closure
30.3. Closures y retorno de funciones
30.4. Closures y contadores
30.5. Closures y privacidad
30.6. Closures y loops (caso clásico de error)
30.7. Closures y memoria
30.8. Closures en callbacks
30.9. Closures y funciones flecha
30.10. Buenas prácticas con closures
MANUAL I - Dominando Closures y Contadores en JavaScript
MANUAL II - Dominando Closures en JavaScript: Privacidad, Retorno de Funciones y Gestión de Memoria
MANUAL III - Dominando Closures y Funciones Flecha en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 31 - Contexto de Ejecución y el Valor de This en Funciones

16 lecciones
31.1. ¿Qué es el contexto de ejecución?
31.2. Qué es this
31.3. this en métodos de objeto
31.4. this en funciones flecha
31.5. this en constructores
31.6. this en eventos del navegador
31.7. Cambiar manualmente el contexto (call, apply, bind)
31.8. this en el modo estricto
31.9. Errores típicos con this
31.10. Buenas prácticas con this
MANUAL I - Dominando 'this' en JavaScript: Eventos, Errores y Buenas Prácticas
MANUAL II - Dominando 'This' y Modificación de Contexto en JavaScript
MANUAL III - Dominando 'this' en JavaScript: Métodos, Funciones Flecha y Constructores
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 32 - Funciones Generadoras en Javascript

16 lecciones
32.1. ¿Qué es una función generadora?
32.2. Sintaxis y estructura de un generador
32.3. Iteración manual con generadores
32.4. Generadores y bucles for...of
32.5. Generadores infinitos
32.6. Pasar valores al generador
32.7. Uso práctico: control de estados
32.8. Delegación de generadores con yield?
32.9. Errores y excepciones en generadores
32.10. Buenas prácticas con generadores
MANUAL I - Dominando Generadores en JavaScript: Delegación, Manejo de Errores y Control de Estados
MANUAL II - Dominando Generadores y Flujos en JavaScript
MANUAL III - Dominando Generadores en JavaScript: Prácticas y Aplicaciones
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 33 - Funciones Recursivas en Javascript

16 lecciones
33.1. ¿Qué es la recursión?
33.2. Elementos clave de la recursión
33.3. Caso práctico: conteo regresivo
33.4. Factorial de un número
33.5. Fibonacci recursivo
33.6. Recursión con estructuras (listas)
33.7. Recursión indirecta
33.8. Pila de llamadas en recursión
33.9. Errores comunes en recursión
33.10. Buenas prácticas con recursión
MANUAL I - Dominando la Recursión y la Pila de Llamadas en JavaScript
MANUAL II - Dominando la Recursión en JavaScript con Ejemplos Prácticos
MANUAL III - Dominando la Recursión en JavaScript: Prácticas, Fibonacci y Estructuras
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 34 - Generadores Asíncronos en Javascript

16 lecciones
34.1. ¿Qué es un generador asíncrono?
34.2. Sintaxis y estructura básica
34.3. Consumo de generadores asíncronos
34.4. Uso combinado con API simulada
34.5. Delegación asíncrona con yield?
34.6. Errores en generadores asíncronos
34.7. Generadores asíncronos y streams
34.8. Buenas prácticas
34.9. Comparativa generador asíncrono vs promesas
34.10. Casos reales de uso
MANUAL I - Dominando los Generadores Asíncronos en JavaScript
MANUAL II - Aplicación Profesional de Generadores Asíncronos en JavaScript
MANUAL III - Dominando Promesas, Generadores y Asincronía en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 35 - Depuración en Visual Studio Code

16 lecciones
35.1. ¿Qué es depurar?
35.2. Configuración inicial del depurador en VSCode
35.3. Uso de puntos de interrupción (breakpoints)
35.4. Herramientas de control de flujo en depuración
35.5. Inspección de variables
35.6. El panel de call stack
35.7. El panel de consola de depuración
35.8. Condiciones en los breakpoints
35.9. Manejo de errores durante la depuración
35.10. Buenas prácticas en depuración
MANUAL I - Dominando la Depuración y la Inspección de Variables en JavaScript con VSCode
MANUAL II - Dominando la Depuración en JavaScript: Breakpoints y Control de Flujo
MANUAL III - Depuración y Manejo de Errores en JavaScript con VSCode
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 36 - Errores en Javascript - Tipos, Causas y Manejo

16 lecciones
36.1. ¿Qué es un error en JavaScript?
36.2. Errores de sintaxis
36.3. Errores de referencia
36.4. Errores de tipo
36.5. Errores de rango
36.6. Excepciones personalizadas
36.7. Manejo con try...catch
36.8. Uso de finally
36.9. Errores silenciosos y cómo detectarlos
36.10. Buenas prácticas para manejar errores
MANUAL I - Gestión y Depuración de Errores en JavaScript
MANUAL II - Gestión de Errores y Excepciones en JavaScript
MANUAL III - Manejo de Errores y Excepciones en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 37 - Introducción a la Asincronía en Javascript

16 lecciones
37.1. ¿Qué es la asincronía?
37.2. El event loop
37.3. La cola de tareas
37.4. Código síncrono vs asíncrono
37.5. Primer contacto con setTimeout y setInterval
37.6. Errores comunes al empezar con asincronía
37.7. Por qué es importante la asincronía en el frontend
37.8. Relación de la asincronía con el navegador
37.9. Diferencia entre asincronía y multihilo
37.10. Buenas prácticas para empezar con asincronía
MANUAL I - Dominando la Asincronía y Cola de Tareas en JavaScript
MANUAL II - Dominando la Asincronía y el Event Loop en JavaScript
MANUAL III - Dominando la Asincronía en JavaScript: setTimeout, setInterval y Prácticas Eficaces
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 38 - Callbacks y su Evolución

16 lecciones
38.1. ¿Qué es un callback?
38.2. Sintaxis de un callback
38.3. Uso de callbacks en temporizadores
38.4. Callbacks para manejar eventos
38.5. Callback hell_ el problema
38.6. Cómo evitar el callback hell (primeros consejos)
38.7. El flujo de ejecución en callbacks
38.8. Errores comunes al usar callbacks
38.9. Callbacks y el paso de datos
38.10. De los callbacks a las promesas
MANUAL I - Dominando Callbacks y Promesas en JavaScript
MANUAL II - Manejo Avanzado de Callbacks en JavaScript
MANUAL III - Dominando Callbacks y Flujos de Ejecución en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 39 - Promesas en Javascript

16 lecciones
39.1. ¿Qué es una promesa?
39.2. Estados de una promesa
39.3. Sintaxis básica de una promesa
39.4. then y catch
39.5. finally
39.6. Promesas encadenadas
39.7. Promesas anidadas (lo que no hacer)
39.8. Promise.all
39.9. Promise.race
39.10. Buenas prácticas con promesas
MANUAL I - Dominio de Promesas en JavaScript: Creación, Encadenamiento y Manejo de Errores
MANUAL II - Dominando las Promesas en JavaScript: Anidación, Encadenamiento y Promise.all
MANUAL III - Dominando Promesas en JavaScript: Uso, Buenas Prácticas y Métodos Especiales
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 40 - Async y Await en Javascript

16 lecciones
40.1. ¿Qué es async?
40.2. ¿Qué es await?
40.3. Sintaxis básica de async/await
40.4. Manejo de errores con try-catch
40.5. Uso combinado con funciones tradicionales
40.6. Funciones async con múltiples await
40.7. await en bucles
40.8. await fuera de async
40.9. Buenas prácticas con async/await
40.10. Casos donde no usar await
MANUAL I - Dominando Async/Await en JavaScript: Conceptos, Ejemplos y Buenas Prácticas
MANUAL II - Dominando Async/Await y Promesas en JavaScript
MANUAL III - Manejo Avanzado de Async/Await y Errores en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 41 - Timers y el Event Loop en Javascript

16 lecciones
41.1. ¿Qué es un timer en JavaScript?
41.2. Uso de setTimeout
41.3. Uso de setInterval
41.4. Cancelar timers
41.5. Anidar timers
41.6. El Event Loop explicado
41.7. Timers y el Event Loop
41.8. Impacto en la ejecución del código
41.9. Buenas prácticas con timers
41.10. Timers y asincronía_ conclusiones
MANUAL I - Dominando Timers en JavaScript: Uso, Anidación y Cancelación
MANUAL II - Dominando Timers, Asincronía y el Event Loop en JavaScript
MANUAL III - Dominando Temporizadores y Event Loop en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 42 - Event Loop Avanzado y Microtareas

16 lecciones
42.1. Repaso del Event Loop básico
42.2. Microtareas vs macrotareas
42.3. Orden de ejecución con ejemplos reales
42.4. El rol de las microtareas en async_await
42.5. Cómo las tareas afectan al rendimiento
42.6. ¿Qué pasa con las promesas rechazadas sin catch?
42.7. queueMicrotask
42.8. Casos de uso reales
42.9. Visualizar el Event Loop en DevTools
42.10. Buenas prácticas al escribir código asincrónico
MANUAL I - Dominando el Código Asincrónico en JavaScript: Promesas, Microtareas y Event Loop
MANUAL II - Gestión de Tareas y Rendimiento en JavaScript
MANUAL III - Manejo de Promesas y Event Loop en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 43 - JSON y su uso en Javascript

16 lecciones
43.1. ¿Qué es JSON?
43.2. Estructura básica de un JSON
43.3. Convertir un objeto a JSON (JSON.stringify)
43.4. Convertir JSON a objeto (JSON.parse)
43.5. JSON anidados y complejos
43.6. JSON y APIs
43.7. Formateo y legibilidad de JSON
43.8. Limitaciones y errores comunes
43.9. JSON en almacenamiento local
43.10. Buenas prácticas al usar JSON
MANUAL I - Dominando JSON: Conversión, Almacenamiento y Errores Comunes en JavaScript
MANUAL II - Dominando JSON en JavaScript: Anidación, Validación y Buenas Prácticas
MANUAL III - Dominando JSON: Uso, Estructura y Mejora de Legibilidad en APIs
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 44 - Introducción a la manipulación del DOM con JavaScript

16 lecciones
44.1. ¿Qué es el DOM?
44.2. Conexión entre JS y el DOM
44.3. Seleccionar elementos del DOM
44.4. Cambiar contenido de los elementos
44.5. Cambiar atributos de los elementos
44.6. Añadir y quitar clases
44.7. Cambiar estilos inline
44.8. Crear y eliminar elementos
44.9. Buenas prácticas para manipular el DOM
44.10. El papel de defer y la carga del script
MANUAL I - Dominando la Manipulación del DOM con JavaScript
MANUAL II - Manipulación Efectiva del DOM y Estilos en JavaScript
MANUAL III - Dominando el DOM: Interacción y Manipulación con JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 45 - Eventos y Gestión de Interacciones en el DOM

16 lecciones
45.1. ¿Qué es un evento en el DOM?
45.2. addEventListener
45.3. Eventos de mouse
45.4. Eventos de teclado
45.5. Eventos de formulario
45.6. El objeto event
45.7. Eliminar eventos
45.8. Eventos delegados
45.9. Prevenir el comportamiento por defecto
45.10. Propagación y bubbling
MANUAL I - Dominando Eventos y Manejadores en JavaScript y el DOM
MANUAL II - Gestión Avanzada de Eventos en JavaScript
MANUAL III - Gestión Avanzada de Eventos en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 46 - Manipulación Dinámica Avanzada del DOM

16 lecciones
46.1. Crear elementos dinámicamente
46.2. Insertar elementos en posiciones específicas
46.3. Eliminar y reemplazar nodos
46.4. Uso de innerHTML para insertar bloques
46.5. Plantillas en el DOM
46.6. Uso de DocumentFragment
46.7. Acceso y modificación de atributos
46.8. Clonar nodos
46.9. Manipulación masiva de clases y estilos
46.10. Buenas prácticas en manipulación avanzada
MANUAL I - Optimización y Manipulación Dinámica del DOM con JavaScript
MANUAL II - Dominando la Manipulación del DOM y Estilos en JavaScript
MANUAL III - Manipulación Avanzada del DOM con JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 47 - Eventos Avanzados y Personalizados en el DOM

16 lecciones
47.1. Revisión de propagación y fases de un evento
47.2. stopPropagation y stopImmediatePropagation
47.3. passive y once en eventos
47.4. Eventos personalizados (CustomEvent)
47.5. Detalle en CustomEvent
47.6. Dispatch de eventos desde elementos dinámicos
47.7. Eventos globales vs locales
47.8. Simular eventos nativos
47.9. Composición de eventos complejos
47.10. Buenas prácticas con eventos avanzados
MANUAL I - Dominando Eventos en JavaScript: Nativos, Personalizados y Buenas Prácticas
MANUAL II - Dominando Eventos y Propagación en JavaScript
MANUAL III - Gestión Avanzada de Eventos en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 48 - Animaciones y Efectos Básicos con Javascript

15 lecciones
48.1. Manipulación de estilos en tiempo real
48.2. Mostrar y ocultar elementos
48.3. Cambiar clases con JS para animar
48.4. Transiciones controladas con JS
48.5. Temporizadores: setTimeout
48.6. Repeticiones: setInterval
48.7. Animaciones paso a paso (requestAnimationFrame)
48.8. Control de interrupción de animaciones
48.9. Combinar animaciones con eventos
MANUAL I - Control y Manipulación de Animaciones y Elementos en JavaScript
MANUAL II - Dominando Animaciones y Transiciones con JavaScript
MANUAL III - Optimización y Control de Animaciones en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 49 - Formularios Dinámicos y Validación con Javascript

16 lecciones
49.1. Captura de eventos de formulario
49.2. Obtener valores de los campos
49.3. Validación básica con JS
49.4. Validación de números y rangos
49.5. Validación de contraseñas
49.6. Checkbox y radios obligatorios
49.7. Mensajes de error y éxito dinámicos
49.8. Evitar el envío si hay errores
49.9. Validaciones personalizadas por campo
49.10. Buenas prácticas en validación JS
MANUAL I - Validación y Captura de Eventos en Formularios con JavaScript
MANUAL II - Validación y Control de Formularios en JavaScript
MANUAL III - Validación y Captura de Datos en Formularios con JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 50 - Almacenamiento Local y de Sesión en el Navegador (LocalStorage y SessionStorage)

16 lecciones
50.1. ¿Qué es el almacenamiento web?
50.2. Guardar datos en localStorage
50.3. Leer datos de localStorage
50.4. Eliminar datos de localStorage
50.5. Guardar y leer datos en sessionStorage
50.6. Guardar datos complejos (JSON)
50.7. Actualizar datos existentes
50.8. Verificación de compatibilidad y uso responsable
50.9. Buenas prácticas en almacenamiento web
50.10. Casos reales combinando con formularios y DOM
MANUAL I - Gestión Avanzada de localStorage en JavaScript
MANUAL II - Gestión Efectiva del Almacenamiento Web en JavaScript
MANUAL III - Gestión de Datos con LocalStorage y SessionStorage en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 51 - Timers y Control del Tiempo en JavaScript (SetTimeout, setInterval, clearTimeout, clearInterval)

16 lecciones
51.1. Introducción a los timers
51.2. Uso básico de setTimeout
51.3. Uso básico de setInterval
51.4. Cancelar un timeout con clearTimeout
51.5. Cancelar un intervalo con clearInterval
51.6. Anidar timers (control secuencial)
51.7. Evitar errores comunes con timers
51.8. Timers y el rendimiento
51.9. Timers combinados con el DOM
51.10. Buenas prácticas y organización de timers
MANUAL I - Dominando Timers y Animaciones en JavaScript
MANUAL II - Dominando Timers y DOM en JavaScript
MANUAL III - Gestión Eficaz de Timers y Timeouts en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 52 - Clases en Javascript (POO - Programación Orientada a Objetos)

16 lecciones
52.1. ¿Qué es una clase en JavaScript?
52.2. Sintaxis básica de una clase
52.3. El constructor y sus parámetros
52.4. Métodos dentro de la clase
52.5. Instancias y uso de propiedades
52.6. Getters y setters
52.7. Métodos estáticos
52.8. Herencia con extends
52.9. Sobrescritura de métodos (override)
52.10. Buenas prácticas al trabajar con clases
MANUAL I - Dominando Clases, Constructores y Herencia en JavaScript
MANUAL II - Dominando Clases, Getters, Setters y Override en JavaScript
MANUAL III - Principios y Prácticas de Clases en JavaScript ES6
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 53 - Prototypes en Javascript y el Funcionamiento Interno de las Clases

16 lecciones
53.1. ¿Qué es un prototype?
53.2. El prototype en los objetos literales
53.3. prototype en funciones constructoras
53.4. El prototype en las clases ES6
53.5. Añadir propiedades o métodos al prototype
53.6. Herencia prototípica explícita
53.7. Prototipos nativos
53.8. La cadena de prototipos (prototype chain)
53.9. Overriding y shadowing en el prototype
53.10. Buenas prácticas y consideraciones
MANUAL I - Dominando Prototypes y Clases en JavaScript ES6
MANUAL II - Dominando Prototipos y Funciones Constructoras en JavaScript
MANUAL III - Dominando Prototype, Overriding y Shadowing en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

Tema 54 - Módulos y Organización en Javascript

16 lecciones
54.1. ¿Por qué modularizar el código?
54.2. Qué es un módulo en JavaScript
54.3. Exportaciones con export
54.4. Importaciones con import
54.5. Exportación por defecto
54.6. Relación con el navegador y <script type="module">
54.7. Uso de rutas relativas y absolutas
54.8. Organizar el proyecto en carpetas
54.9. Modularización y rendimiento
54.10. Buenas prácticas en módulos
MANUAL I - Gestión Profesional de Módulos y Rutas en JavaScript
MANUAL II - Dominando Módulos, Importaciones y Exportaciones en JavaScript
MANUAL III - Optimización y Modularización en JavaScript
Ejercicio 1
Ejercicio 2
Ejercicio 3

¿Listo para empezar?

Aprende a desarrollar desde 0 con IA integrada. Practica, resuelve retos reales, con correcciones inmediatas y completamente tutorizado.