diff --git a/Basic/16-functions.js b/Basic/16-functions.js index e5d3dec5..b7952a02 100644 --- a/Basic/16-functions.js +++ b/Basic/16-functions.js @@ -62,7 +62,7 @@ function defaultSum(a = 0, b = 0) { defaultSum() defaultSum(5) defaultSum(5, 10) -defaultSum(b = 5) +defaultSum(undefined, 5) // Retorno de valores @@ -96,11 +96,11 @@ applyFunc(myFunc4, "función de orden superior") // forEach -myArray = [1, 2, 3, 4] +const myArray = [1, 2, 3, 4] -mySet = new Set(["Brais", "Moure", "mouredev", 37, true, "braismoure@mouredev.com"]) +const mySet = new Set(["Brais", "Moure", "mouredev", 37, true, "braismoure@mouredev.com"]) -myMap = new Map([ +const myMap = new Map([ ["name", "Brais"], ["email", "braismoure@mouredev.com"], ["age", 37] diff --git a/Images/header.jpg b/Images/header.jpg old mode 100755 new mode 100644 index fcd61a08..b4d99095 Binary files a/Images/header.jpg and b/Images/header.jpg differ diff --git a/Intermediate/00-advanced-functions.js b/Intermediate/00-advanced-functions.js index 1bbd1141..e2094d5f 100644 --- a/Intermediate/00-advanced-functions.js +++ b/Intermediate/00-advanced-functions.js @@ -1,6 +1,6 @@ /* -Clase 1 - Funciones avanzadas (29/01/2025) -Vídeo: https://www.twitch.tv/videos/2403685765?t=00h08m45s +Clases 2 a 11 - Funciones avanzadas +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=346 */ // Ciudadanos de primera clase diff --git a/Intermediate/01-advanced-functions-exercises.js b/Intermediate/01-advanced-functions-exercises.js index c1ac67d4..2d182882 100644 --- a/Intermediate/01-advanced-functions-exercises.js +++ b/Intermediate/01-advanced-functions-exercises.js @@ -1,6 +1,6 @@ /* -Clase 1 - Funciones avanzadas (29/01/2025) -Vídeo: https://www.twitch.tv/videos/2403685765?t=00h08m45s +Clase 12 - Funciones avanzadas +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=4112 */ // 1. Crea una función que retorne a otra función diff --git a/Intermediate/02-advanced-structures.js b/Intermediate/02-advanced-structures.js index be9ea84e..52245b08 100644 --- a/Intermediate/02-advanced-structures.js +++ b/Intermediate/02-advanced-structures.js @@ -1,6 +1,6 @@ /* -Clase 2 - Estructuras avanzadas (05/02/2025) -Vídeo: https://www.twitch.tv/videos/2403685940?t=00h15m32s +Clases 13 a 22 - Estructuras avanzadas +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=4355 */ // Arrays avanzados diff --git a/Intermediate/03-advanced-structures-exercises.js b/Intermediate/03-advanced-structures-exercises.js index bd997788..c633ef28 100644 --- a/Intermediate/03-advanced-structures-exercises.js +++ b/Intermediate/03-advanced-structures-exercises.js @@ -1,6 +1,6 @@ /* -Clase 2 - Estructuras avanzadas (05/02/2025) -Vídeo: https://www.twitch.tv/videos/2403685940?t=00h15m32s +Clase 23 - Estructuras avanzadas +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=7514 */ // 1. Utiliza map, filter y reduce para crear un ejemplo diferente al de la lección diff --git a/Intermediate/04-advanced-objects.js b/Intermediate/04-advanced-objects.js index 6f53dac0..d99a0250 100644 --- a/Intermediate/04-advanced-objects.js +++ b/Intermediate/04-advanced-objects.js @@ -1,6 +1,6 @@ /* -Clase 3 - Objetos y Clases avanzadas (12/02/2025) -Vídeo: https://www.twitch.tv/videos/2403685993?t=00h21m33s +Clases 24 a 28 - Objetos y clases avanzados +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=7639 */ // Objetos avanzados diff --git a/Intermediate/05-advanced-classes.js b/Intermediate/05-advanced-classes.js index db4de858..61c086d6 100644 --- a/Intermediate/05-advanced-classes.js +++ b/Intermediate/05-advanced-classes.js @@ -1,6 +1,6 @@ /* -Clase 3 - Objetos y Clases avanzadas (12/02/2025) -Vídeo: https://www.twitch.tv/videos/2403685993?t=00h21m33s +Clases 29 a 37 - Objetos y clases avanzados +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=9096 */ // Clases avanzadas diff --git a/Intermediate/06-advanced-objects-classes-exercises.js b/Intermediate/06-advanced-objects-classes-exercises.js index 9aaef66c..af2d1192 100644 --- a/Intermediate/06-advanced-objects-classes-exercises.js +++ b/Intermediate/06-advanced-objects-classes-exercises.js @@ -1,6 +1,6 @@ /* -Clase 3 - Objetos y Clases avanzadas (12/02/2025) -Vídeo: https://www.twitch.tv/videos/2403685993?t=00h21m33s +Clase 38 - Objetos y clases avanzados +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=11832 */ // 1. Agregega una función al prototipo de un objeto diff --git a/Intermediate/07-async.js b/Intermediate/07-async.js index 599c3dc8..376131fc 100644 --- a/Intermediate/07-async.js +++ b/Intermediate/07-async.js @@ -1,6 +1,6 @@ /* -Clase 4 - Programación asíncrona (19/02/2025) -Vídeo: https://www.twitch.tv/videos/2403686047?t=00h22m48s +Clases 39 a 44 - Asincronía +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=11890 */ // Programación asíncrona diff --git a/Intermediate/08-async-exercises.js b/Intermediate/08-async-exercises.js index 39db7c7c..2dfecf6c 100644 --- a/Intermediate/08-async-exercises.js +++ b/Intermediate/08-async-exercises.js @@ -1,6 +1,6 @@ /* -Clase 4 - Programación asíncrona (19/02/2025) -Vídeo: https://www.twitch.tv/videos/2403686047?t=00h22m48s +Clase 45 - Asincronía +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=14558 */ // 1. Crea una función para saludar que reciba un nombre y un callback. diff --git a/Intermediate/09-apis.js b/Intermediate/09-apis.js index 954b8490..fc172f08 100644 --- a/Intermediate/09-apis.js +++ b/Intermediate/09-apis.js @@ -1,6 +1,6 @@ /* -Clase 5 - Manejo de APIs (26/02/2025) -Vídeo: https://www.twitch.tv/videos/2403686091?t=00h17m25s +Clases 46 a 59 - APIs +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=14777 */ // Manejo de APIs diff --git a/Intermediate/10-apis-exercises.js b/Intermediate/10-apis-exercises.js index 5ae85ffd..54962e23 100644 --- a/Intermediate/10-apis-exercises.js +++ b/Intermediate/10-apis-exercises.js @@ -1,6 +1,6 @@ /* -Clase 5 - Manejo de APIs (26/02/2025) -Vídeo: https://www.twitch.tv/videos/2403686091?t=00h17m25s +Clase 60 - APIs +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=18710 */ // 1. Realiza una petición GET con fetch() a JSONPlaceholder y muestra en la consola la lista de publicaciones diff --git a/Intermediate/11-dom.js b/Intermediate/11-dom.js index b9a96a4b..64d8fe49 100644 --- a/Intermediate/11-dom.js +++ b/Intermediate/11-dom.js @@ -1,6 +1,6 @@ /* -Clase 6 - Manejo del DOM (06/03/2025) -Vídeo: https://www.twitch.tv/videos/2403686130?t=00h11m52s +Clases 61 a 68 - DOM +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=18822 */ // Manejo del DOM (Document Object Model) diff --git a/Intermediate/12-dom-example.html b/Intermediate/12-dom-example.html index 3c254094..aab8d1f1 100644 --- a/Intermediate/12-dom-example.html +++ b/Intermediate/12-dom-example.html @@ -1,6 +1,6 @@ diff --git a/Intermediate/13-dom-example.js b/Intermediate/13-dom-example.js index 2744abe9..946568d4 100644 --- a/Intermediate/13-dom-example.js +++ b/Intermediate/13-dom-example.js @@ -1,6 +1,6 @@ /* -Clase 6 - Manejo del DOM (06/03/2025) -Vídeo: https://www.twitch.tv/videos/2403686130?t=00h11m52s +Clase 69 - DOM +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=21754 */ console.log(document) diff --git a/Intermediate/14-tasklist.html b/Intermediate/14-tasklist.html index 27733726..7f691bfd 100644 --- a/Intermediate/14-tasklist.html +++ b/Intermediate/14-tasklist.html @@ -1,6 +1,6 @@ diff --git a/Intermediate/15-tasklist.js b/Intermediate/15-tasklist.js index 8a2cc557..0f126986 100644 --- a/Intermediate/15-tasklist.js +++ b/Intermediate/15-tasklist.js @@ -1,6 +1,6 @@ /* -Clase 6 - Manejo del DOM (06/03/2025) -Vídeo: https://www.twitch.tv/videos/2403686130?t=00h11m52s +Clase 70 - DOM +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=22342 */ const text = document.getElementById("text") diff --git a/Intermediate/16-dom-exercises.js b/Intermediate/16-dom-exercises.js index ba6ea556..468093dc 100644 --- a/Intermediate/16-dom-exercises.js +++ b/Intermediate/16-dom-exercises.js @@ -1,6 +1,6 @@ /* -Clase 6 - Manejo del DOM (06/03/2025) -Vídeo: https://www.twitch.tv/videos/2403686130?t=00h11m52s +Clase 71 - DOM +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=23010 */ // 1. Crea un elemento (por ejemplo, un

) y cambia su contenido a "¡Hola Mundo!"" al cargar la página diff --git a/Intermediate/17-debugging.js b/Intermediate/17-debugging.js index 76452527..cef6ba93 100644 --- a/Intermediate/17-debugging.js +++ b/Intermediate/17-debugging.js @@ -1,6 +1,6 @@ /* -Clase 7 - Debug, Regex y Testing (12/03/2025) -Vídeo: https://www.twitch.tv/videos/2420494093?t=00h21m55s +Clases 72 a 73 - Depuración +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=23085 */ // Depuración diff --git a/Intermediate/18-debugging-exercises.js b/Intermediate/18-debugging-exercises.js index 70d12c34..36d28dba 100644 --- a/Intermediate/18-debugging-exercises.js +++ b/Intermediate/18-debugging-exercises.js @@ -1,6 +1,6 @@ /* -Clase 7 - Debug, Regex y Testing (12/03/2025) -Vídeo: https://www.twitch.tv/videos/2420494093?t=00h21m55s +Clases 74 - Depuración +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=24329 */ // 1. Crea un código con un error lógico y usa VS Code para encontrarlo diff --git a/Intermediate/19-regex.js b/Intermediate/19-regex.js index d2b7918c..9c305b2c 100644 --- a/Intermediate/19-regex.js +++ b/Intermediate/19-regex.js @@ -1,6 +1,6 @@ /* -Clase 7 - Debug, Regex y Testing (12/03/2025) -Vídeo: https://www.twitch.tv/videos/2420494093?t=00h21m55s +Clases 75 a 78 - Regex +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=24363 */ // Expresiones regulares diff --git a/Intermediate/20-regex-exercises.js b/Intermediate/20-regex-exercises.js index 75b5cc40..35d33377 100644 --- a/Intermediate/20-regex-exercises.js +++ b/Intermediate/20-regex-exercises.js @@ -1,6 +1,6 @@ /* -Clase 7 - Debug, Regex y Testing (12/03/2025) -Vídeo: https://www.twitch.tv/videos/2420494093?t=00h21m55s +Clase 79 - Regex +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=25888 */ // 1. Crea una RegEx que valide correos electrónicos diff --git a/Intermediate/21-testing.js b/Intermediate/21-testing.js index cb4ff3a0..7c3d85f4 100644 --- a/Intermediate/21-testing.js +++ b/Intermediate/21-testing.js @@ -1,6 +1,6 @@ /* -Clase 7 - Debug, Regex y Testing (12/03/2025) -Vídeo: https://www.twitch.tv/videos/2420494093?t=00h21m55s +Clases 80 a 81 - Testing +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=25938 */ // Testing diff --git a/Intermediate/22-testing.test.js b/Intermediate/22-testing.test.js index cf401016..888b2c04 100644 --- a/Intermediate/22-testing.test.js +++ b/Intermediate/22-testing.test.js @@ -1,6 +1,6 @@ /* -Clase 7 - Debug, Regex y Testing (12/03/2025) -Vídeo: https://www.twitch.tv/videos/2420494093?t=00h21m55s +Clases 80 a 81 - Testing +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=25938 */ const sum = require('./21-testing') diff --git a/Intermediate/23-testing-exercises.js b/Intermediate/23-testing-exercises.js index f194b203..05c02390 100644 --- a/Intermediate/23-testing-exercises.js +++ b/Intermediate/23-testing-exercises.js @@ -1,6 +1,6 @@ /* -Clase 7 - Debug, Regex y Testing (12/03/2025) -Vídeo: https://www.twitch.tv/videos/2420494093?t=00h21m55s +Clase 82 - Testing +Vídeo: https://youtu.be/iJvLAZ8MJ2E?t=26946 */ // 1. Crea una función isEven(number) que devuelva true si el número es par y false si es impar diff --git a/README.md b/README.md index 42fdd8ae..88df06ae 100644 --- a/README.md +++ b/README.md @@ -9,51 +9,6 @@ ### Proyecto realizado durante emisiones en directo desde [Twitch](https://twitch.tv/mouredev) > ##### Si consideras útil el curso, apóyalo haciendo "★ Star" en el repositorio. ¡Gracias! -## 🆕 NUEVO: Curso Intermedio [Finalizado] - - - -### Curso de fundamentos intermedio (continuación del desde cero). - -* Clase 1 [29/01/2025] - Funciones avanzadas - * [Vídeo](https://www.twitch.tv/videos/2403685765?t=00h08m45s) - * [Código](./Intermediate/00-advanced-functions.js) - * [Ejercicios](./Intermediate/01-advanced-functions-exercises.js) - -* Clase 2 [05/02/2025] - Estructuras avanzadas - * [Vídeo](https://www.twitch.tv/videos/2403685940?t=00h15m32s) - * [Código](./Intermediate/02-advanced-structures.js) - * [Ejercicios](./Intermediate/03-advanced-structures-exercises.js) - -* Clase 3 [12/02/2025] - Objetos y Clases avanzadas - * [Vídeo](https://www.twitch.tv/videos/2403685993?t=00h21m33s) - * [Código Objetos](./Intermediate/04-advanced-objects.js) - * [Código Clases](./Intermediate/05-advanced-classes.js) - * [Ejercicios](./Intermediate/06-advanced-objects-classes-exercises) - -* Clase 4 [19/02/2025] - Programación asíncrona - * [Vídeo](https://www.twitch.tv/videos/2403686047?t=00h22m48s) - * [Código](./Intermediate/07-async.js) - * [Ejercicios](./Intermediate/08-async-exercises.js) - -* Clase 5 [26/02/2025] - Manejo de APIs - * [Vídeo](https://www.twitch.tv/videos/2403686091?t=00h17m25s) - * [Código](./Intermediate/09-apis.js) - * [Ejercicios](./Intermediate/10-apis-exercises.js) - -* Clase 6 [06/03/2025] - Manejo del DOM - * [Vídeo](https://www.twitch.tv/videos/2403686130?t=00h11m52s) - * [Código](./Intermediate/11-dom.js) - * Ejemplo simple: [HTML](./Intermediate/12-dom-example.html) - [JS](./Intermediate/13-dom-example.js) - * Ejemplo lista de tareas: [HTML](./Intermediate/14-tasklist.html) - [JS](./Intermediate/15-tasklist.js) - * [Ejercicios](./Intermediate/16-dom-exercises.js) - -* Clase 7 [12/03/2025] - Debug, Regex y Testing - * [Vídeo](https://www.twitch.tv/videos/2420494093?t=00h21m55s) - * Debug: [Código](./Intermediate/17-debugging.js) - [Ejercicios](./Intermediate/18-debugging-exercises.js) - * Regex: [Código](./Intermediate/19-regex.js) - [Ejercicios](./Intermediate/20-regex-exercises.js) - * Testing: [Código](./Intermediate/21-testing.js) - [Test](./Intermediate/22-testing.test.js) - [Ejercicios](./Intermediate/23-testing-exercises.js) - ## Clases en vídeo ### Curso de fundamentos desde cero @@ -108,6 +63,122 @@ * [45 - Ejercicios: Módulos](https://youtu.be/1glVfFxj8a4?t=22720) | [Ejercicios](./Basic/31-modules-exercises.js) | [package.json](./Basic/package.json) * [Despedida](https://youtu.be/1glVfFxj8a4?t=22776) +### Curso de fundamentos intermedio (continuación del desde cero) + + + +* [Introducción](https://youtu.be/iJvLAZ8MJ2E) +* [1 - Primeros pasos](https://youtu.be/iJvLAZ8MJ2E?t=279) + +Funciones avanzadas | [Código](./Intermediate/00-advanced-functions.js) + +* [2 - Ciudadanos de primera clase](https://youtu.be/iJvLAZ8MJ2E?t=346) +* [3 - Arrow functions](https://youtu.be/iJvLAZ8MJ2E?t=782) +* [4 - IIFE](https://youtu.be/iJvLAZ8MJ2E?t=1278) +* [5 - Parámetros rest](https://youtu.be/iJvLAZ8MJ2E?t=1873) +* [6 - Operador Spread](https://youtu.be/iJvLAZ8MJ2E?t=2126) +* [7 - Closures](https://youtu.be/iJvLAZ8MJ2E?t=2356) +* [8 - Recursividad](https://youtu.be/iJvLAZ8MJ2E?t=2650) +* [9 - Funciones parciales](https://youtu.be/iJvLAZ8MJ2E?t=3013) +* [10 - Currying](https://youtu.be/iJvLAZ8MJ2E?t=3473) +* [11 - Callbacks](https://youtu.be/iJvLAZ8MJ2E?t=3675) +* [12 - Ejercicios: Funciones avanzadas](https://youtu.be/iJvLAZ8MJ2E?t=4112) | [Ejercicios](./Intermediate/01-advanced-functions-exercises.js) + +Estructuras avanzadas | [Código](./Intermediate/02-advanced-structures.js) + +* [13 - Estructuras avanzadas](https://youtu.be/iJvLAZ8MJ2E?t=4355) +* [14 - Arrays avanzados: métodos funcionales](https://youtu.be/iJvLAZ8MJ2E?t=4411) +* [15 - Arrays avanzados: manipulación](https://youtu.be/iJvLAZ8MJ2E?t=5244) +* [16 - Arrays avanzados: ordenación](https://youtu.be/iJvLAZ8MJ2E?t=5621) +* [17 - Arrays avanzados: búsqueda](https://youtu.be/iJvLAZ8MJ2E?t=5979) +* [18 - Sets avanzados: operaciones](https://youtu.be/iJvLAZ8MJ2E?t=6288) +* [19 - Sets avanzados: conversión](https://youtu.be/iJvLAZ8MJ2E?t=6949) +* [20 - Sets avanzados: iteración](https://youtu.be/iJvLAZ8MJ2E?t=6992) +* [21 - Maps avanzados: iteración](https://youtu.be/iJvLAZ8MJ2E?t=7061) +* [22 - Maps avanzados: conversión](https://youtu.be/iJvLAZ8MJ2E?t=7207) +* [23 - Ejercicios: Estructuras avanzadas](https://youtu.be/iJvLAZ8MJ2E?t=7514) | [Ejercicios](./Intermediate/03-advanced-structures-exercises.js) + +Objetos y clases avanzados | [Código Objetos](./Intermediate/04-advanced-objects.js) | [Código Clases](./Intermediate/05-advanced-classes.js) + +* [24 - Objetos avanzados](https://youtu.be/iJvLAZ8MJ2E?t=7639) +* [25 - Prototipos](https://youtu.be/iJvLAZ8MJ2E?t=7695) +* [26 - Herencia](https://youtu.be/iJvLAZ8MJ2E?t=8068) +* [27 - Métodos estáticos y de instancia](https://youtu.be/iJvLAZ8MJ2E?t=8577) +* [28 - Métodos avanzados](https://youtu.be/iJvLAZ8MJ2E?t=8896) +* [29 - Clases avanzadas](https://youtu.be/iJvLAZ8MJ2E?t=9096) +* [30 - Abstracción](https://youtu.be/iJvLAZ8MJ2E?t=9408) +* [31 - Polimorfismo](https://youtu.be/iJvLAZ8MJ2E?t=9694) +* [32 - Mixins](https://youtu.be/iJvLAZ8MJ2E?t=9956) +* [33 - Singleton](https://youtu.be/iJvLAZ8MJ2E?t=10454) +* [34 - Symbol](https://youtu.be/iJvLAZ8MJ2E?t=10901) +* [35 - instanceof](https://youtu.be/iJvLAZ8MJ2E?t=11264) +* [36 - create](https://youtu.be/iJvLAZ8MJ2E?t=11331) +* [37 - Proxy](https://youtu.be/iJvLAZ8MJ2E?t=11375) +* [38 - Ejercicios: Objetos y clases avanzados](https://youtu.be/iJvLAZ8MJ2E?t=11832) | [Ejercicios](./Intermediate/06-advanced-objects-classes-exercises) + +Asincronía | [Código](./Intermediate/07-async.js) + +* [39 - Asincronía](https://youtu.be/iJvLAZ8MJ2E?t=11890) +* [40 - Código síncrono](https://youtu.be/iJvLAZ8MJ2E?t=12245) +* [41 - Event Loop](https://youtu.be/iJvLAZ8MJ2E?t=12366) +* [42 - Callbacks](https://youtu.be/iJvLAZ8MJ2E?t=12729) +* [43 - Promesas](https://youtu.be/iJvLAZ8MJ2E?t=13349) +* [44 - Async/Await](https://youtu.be/iJvLAZ8MJ2E?t=14171) +* [45 - Ejercicios: Asincronía](https://youtu.be/iJvLAZ8MJ2E?t=14558) | [Ejercicios](./Intermediate/08-async-exercises.js) + +APIs | [Código](./Intermediate/09-apis.js) + +* [46 - APIs](https://youtu.be/iJvLAZ8MJ2E?t=14777) +* [47 - API REST](https://youtu.be/iJvLAZ8MJ2E?t=14973) +* [48 - Métodos HTTP](https://youtu.be/iJvLAZ8MJ2E?t=15134) +* [49 - Códigos de respuesta HTTP](https://youtu.be/iJvLAZ8MJ2E?t=15294) +* [50 - GET](https://youtu.be/iJvLAZ8MJ2E?t=15477) +* [51 - Async/Await en APIs](https://youtu.be/iJvLAZ8MJ2E?t=16400) +* [52 - POST](https://youtu.be/iJvLAZ8MJ2E?t=16626) +* [53 - Herramientas para realizar peticiones HTTP](https://youtu.be/iJvLAZ8MJ2E?t=17088) +* [54 - Manejo de errores](https://youtu.be/iJvLAZ8MJ2E?t=17325) +* [55 - Métodos HTTP adicionales](https://youtu.be/iJvLAZ8MJ2E?t=17619) +* [56 - Autenticación mediante API Key](https://youtu.be/iJvLAZ8MJ2E?t=17770) +* [57 - Otros métodos de autenticación y autorización](https://youtu.be/iJvLAZ8MJ2E?t=18244) +* [58 - Versionado de APIs](https://youtu.be/iJvLAZ8MJ2E?t=18323) +* [59 - Otras APIs](https://youtu.be/iJvLAZ8MJ2E?t=18441) +* [60 - Ejercicios: APIs](https://youtu.be/iJvLAZ8MJ2E?t=18710) | [Ejercicios](./Intermediate/10-apis-exercises.js) + +DOM | [Código](./Intermediate/11-dom.js) + +* [61 - DOM](https://youtu.be/iJvLAZ8MJ2E?t=18822) +* [62 - Estructura del DOM](https://youtu.be/iJvLAZ8MJ2E?t=19105) +* [63 - Métodos de selección](https://youtu.be/iJvLAZ8MJ2E?t=19172) +* [64 - Manipulación de elementos](https://youtu.be/iJvLAZ8MJ2E?t=19792) +* [65 - Modificación de atributos](https://youtu.be/iJvLAZ8MJ2E?t=19996) +* [66 - Interacción con clases CSS](https://youtu.be/iJvLAZ8MJ2E?t=20326) +* [67 - Creación y eliminación de elementos](https://youtu.be/iJvLAZ8MJ2E?t=20787) +* [68 - Elementos y eventos del DOM](https://youtu.be/iJvLAZ8MJ2E?t=21377) +* [69 - Ejemplos: acceso al DOM](https://youtu.be/iJvLAZ8MJ2E?t=21754) | Ejemplo simple: [HTML](./Intermediate/12-dom-example.html) - [JS](./Intermediate/13-dom-example.js) +* [70 - Ejemplos: lista de tareas](https://youtu.be/iJvLAZ8MJ2E?t=22342) Ejemplo lista de tareas: [HTML](./Intermediate/14-tasklist.html) - [JS](./Intermediate/15-tasklist.js) +* [71 - Ejercicios: DOM](https://youtu.be/iJvLAZ8MJ2E?t=23010) | [Ejercicios](./Intermediate/16-dom-exercises.js) + +Depuración | [Código](./Intermediate/17-debugging.js) + +* [72 - Depuración](https://youtu.be/iJvLAZ8MJ2E?t=23085) +* [73 - Depurador](https://youtu.be/iJvLAZ8MJ2E?t=23370) +* [74 - Ejercicios: Depuración](https://youtu.be/iJvLAZ8MJ2E?t=24329) | [Ejercicios](./Intermediate/18-debugging-exercises.js) + +Regex | [Código](./Intermediate/19-regex.js) + +* [75 - Regex](https://youtu.be/iJvLAZ8MJ2E?t=24363) +* [76 - Sintaxis: test](https://youtu.be/iJvLAZ8MJ2E?t=24444) +* [77 - Sintaxis: replace](https://youtu.be/iJvLAZ8MJ2E?t=24989) +* [78 - Sintaxis: exec](https://youtu.be/iJvLAZ8MJ2E?t=25365) +* [79 - Ejercicios: Regex](https://youtu.be/iJvLAZ8MJ2E?t=25888) | [Ejercicios](./Intermediate/20-regex-exercises.js) + +Testing | [Código](./Intermediate/21-testing.js) | [Test](./Intermediate/22-testing.test.js) + +* [80 - Testing](https://youtu.be/iJvLAZ8MJ2E?t=25938) +* [81 - Jest](https://youtu.be/iJvLAZ8MJ2E?t=26272) +* [82 - Ejercicios: Testing](https://youtu.be/iJvLAZ8MJ2E?t=26946) | [Ejercicios](./Intermediate/23-testing-exercises.js) +* [Despedida](https://youtu.be/iJvLAZ8MJ2E?t=26970) + ## Enlaces de interés * Impacto: [Stack Overflow](https://survey.stackoverflow.co/2023/#most-popular-technologies-language) | [GitHub](https://github.blog/2023-11-08-the-state-of-open-source-and-ai/) | [Índice TIOBE](https://www.tiobe.com/tiobe-index/) | [Google Trends](https://trends.google.es/trends/explore?cat=5&date=today%205-y&q=%2Fm%2F02p97,%2Fm%2F05z1_,%2Fm%2F07sbkfb&hl=es) @@ -126,6 +197,7 @@ * APIs: [JSONPlaceholder](https://jsonplaceholder.typicode.com) | [OpenWeather](https://openweathermap.org) | [PokéAPI](https://pokeapi.co) * Expresiones regulares: [Documentación](https://developer.mozilla.org/es/docs/Web/JavaScript/Guide/Regular_expressions/Cheatsheet ) | [Regex101](https://regex101.com/) +* [Jest](https://jestjs.io/) ## Únete al campus de programación de la comunidad @@ -135,7 +207,7 @@ > **¿Buscas un extra?** Aquí encontrarás este y otros cursos editados por lecciones individuales, para avanzar a tu ritmo y guardar el progreso. También dispondrás de ejercicios y correcciones, test para validar tus conocimientos, examen y certificado público de finalización, soporte, foro de estudiantes, reunionnes grupales, cursos exclusivos y mucho más. > -> Entra en **[mouredev.pro](https://mouredev.pro)** y utiliza el cupón **"JAVASCRIPT"** con un 10% de descuento en tu primera suscripción. +> Entra en **[mouredev.pro](https://mouredev.pro)** y utiliza el cupón **"JAVASCRIPT"** con un 15% de descuento en tu primera suscripción. ## Preguntas frecuentes