├── hola-mundo.js ├── modulo-primeros-pasos ├── clase-hola-mundo.js ├── clase-variables.js ├── clase-strings.js └── clase-tipos-de-datos.js ├── asincronia-js ├── GettingStartedHTTP │ ├── app.js │ └── index.html ├── GETRequest │ ├── app.js │ └── index.html ├── POSTRequest │ ├── app.js │ └── index.html └── DELETERequest │ ├── app.js │ └── index.html ├── ciclos ├── operadores │ ├── logica.js │ ├── index.js │ └── indexx.html ├── loops │ ├── while │ │ ├── index.js │ │ └── index.html │ ├── do-while │ │ ├── index.js │ │ └── index.html │ ├── forEach │ │ ├── index.js │ │ └── index.html │ ├── for │ │ ├── index.js │ │ └── index.html │ ├── for-of │ │ ├── index.js │ │ └── index.html │ └── for-in │ │ ├── index.html │ │ └── index.js ├── ejecucionCondicional │ ├── if │ │ ├── index.js │ │ ├── index.html │ │ └── juego.js │ ├── switch │ │ ├── index.html │ │ └── index.js │ └── ternario │ │ ├── index.html │ │ └── index.js └── retoFinal │ ├── index.html │ └── index.js ├── modulo-arrays ├── clase-slice.js ├── clase-spread-operator.js ├── clase-map-forEach.js ├── clase-filter-reduce.js ├── clase-introduccion-arrays.js ├── clase-push-pop.js └── clase-find-findIndex.js ├── obj&Classes ├── objetos │ ├── index.html │ └── index.js ├── retoFinal │ ├── index.html │ └── index.js └── clases │ ├── this │ ├── index.html │ └── index.js │ ├── class │ ├── index.html │ └── index.js │ ├── constructor │ └── prototype&inheritance │ ├── index.html │ └── index.js └── modulo-funciones ├── clase-anatomia-de-una-funcion.js ├── clase-funciones-puras-e-impuras.js ├── clase-arrow-functions.js ├── clase-funciones-vs-metodos.js └── clase-closures.js /hola-mundo.js: -------------------------------------------------------------------------------- 1 | console.log("Hola mundo feliz :)"); 2 | -------------------------------------------------------------------------------- /modulo-primeros-pasos/clase-hola-mundo.js: -------------------------------------------------------------------------------- 1 | console.log("Hola mundo feliz :)"); 2 | -------------------------------------------------------------------------------- /asincronia-js/GettingStartedHTTP/app.js: -------------------------------------------------------------------------------- 1 | fetch("https://jsonplaceholder.typicode.com/posts") 2 | .then((response) => response.json()) 3 | .then((data) => console.log(data)); 4 | -------------------------------------------------------------------------------- /ciclos/operadores/logica.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Operadores Lógicos 4 | 5 | */ 6 | 7 | && 8 | || 9 | ! 10 | 11 | const a = 10; 12 | const b = 20; 13 | const c = "10" 14 | 15 | -------------------------------------------------------------------------------- /ciclos/loops/while/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | while(condicion) { 3 | código 4 | } 5 | */ 6 | 7 | let contador = 0; 8 | 9 | while (contador < 10) { 10 | console.log(contador); 11 | contador++; 12 | } 13 | -------------------------------------------------------------------------------- /ciclos/loops/do-while/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | do { 4 | código 5 | } while (condicion) 6 | 7 | */ 8 | 9 | let contador = 0; 10 | 11 | do { 12 | console.log(contador); 13 | contador++; 14 | } while (contador < 10); 15 | -------------------------------------------------------------------------------- /ciclos/loops/forEach/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | array.forEach((item) => { 4 | código a ejectura 5 | }) 6 | 7 | */ 8 | 9 | let list = ["eat", "sleep", "code", "repeat"]; 10 | 11 | list.forEach((item) => { 12 | console.log(item); 13 | }); 14 | -------------------------------------------------------------------------------- /ciclos/loops/for/index.js: -------------------------------------------------------------------------------- 1 | // for (variable; condición; incremento) { 2 | // código a ejecutar 3 | // } 4 | 5 | let list = ["eat", "sleep", "code", "repeat"]; 6 | 7 | for (let i = 0; i < list.length; i++) { 8 | console.log(list[i]); 9 | } 10 | -------------------------------------------------------------------------------- /ciclos/operadores/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Operadores de comparación 4 | 5 | */ 6 | 7 | == 8 | === 9 | != 10 | !== 11 | > 12 | < 13 | >= 14 | <= 15 | 16 | const a = 10; 17 | const b = 20; 18 | const c = "10" 19 | 20 | a == b; 21 | 22 | -------------------------------------------------------------------------------- /ciclos/ejecucionCondicional/if/index.js: -------------------------------------------------------------------------------- 1 | let nombre = "Nico"; 2 | 3 | if (nombre === "Diego") { 4 | console.log("Hola Diego"); 5 | } else if (nombre === "Nico") { 6 | console.log("Hola Nico"); 7 | } else { 8 | console.log("Nombre no encontrado"); 9 | } 10 | -------------------------------------------------------------------------------- /ciclos/loops/for-of/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | for of arrays, strings [algo] 4 | 5 | for (varible of objeto) { 6 | código 7 | } 8 | 9 | */ 10 | 11 | let canasta = ["manzana", "pera", "naranja", "uva"]; 12 | 13 | for (fruta of canasta) { 14 | console.log(fruta); 15 | } 16 | -------------------------------------------------------------------------------- /modulo-arrays/clase-slice.js: -------------------------------------------------------------------------------- 1 | // slice() 2 | 3 | const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'] 4 | 5 | console.log(animals.slice(2)) 6 | console.log(animals.slice(2, 4)) 7 | console.log(animals.slice(1, 6)) 8 | console.log(animals.slice(-2)) 9 | console.log(animals.slice(2, -1)) 10 | console.log(animals.slice()) -------------------------------------------------------------------------------- /ciclos/loops/for/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ciclos/retoFinal/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ciclos/loops/while/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /modulo-primeros-pasos/clase-variables.js: -------------------------------------------------------------------------------- 1 | let cajaDeAndy = 'Woody' 2 | console.log(cajaDeAndy) 3 | 4 | // Lo NO permitido 5 | let c = 'Woody' 6 | let cda = 'Woody' 7 | let pcAndy = 'Woody' 8 | 9 | // Lo permitido 10 | let primerTrasteoDeAndy = 'Woody' 11 | let urlDelUsuario = 'https://www.google.com' 12 | let idDelUsuario = '123456789' -------------------------------------------------------------------------------- /ciclos/loops/do-while/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ciclos/loops/for-in/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ciclos/loops/for-of/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ciclos/loops/forEach/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /obj&Classes/objetos/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /obj&Classes/retoFinal/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /obj&Classes/clases/this/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /obj&Classes/clases/class/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /obj&Classes/clases/class/index.js: -------------------------------------------------------------------------------- 1 | class Persona { 2 | constructor(nombre, edad) { 3 | this.nombre = nombre; 4 | this.edad = edad; 5 | } 6 | saludar() { 7 | console.log(`Hola, mi nombre es ${this.nombre} y tengo ${this.edad} años.`); 8 | } 9 | } 10 | 11 | const persona1 = new Persona("Mariana", 25); 12 | 13 | persona1.saludar(); 14 | -------------------------------------------------------------------------------- /obj&Classes/clases/constructor/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ciclos/ejecucionCondicional/switch/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ciclos/ejecucionCondicional/ternario/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /obj&Classes/clases/prototype&inheritance/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /ciclos/operadores/indexx.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /obj&Classes/clases/this/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | this --- class 3 | 4 | this --- objeto -- class 5 | */ 6 | 7 | class Persona { 8 | constructor(nombre, edad) { 9 | this.nombre = nombre; 10 | this.edad = edad; 11 | } 12 | } 13 | 14 | const persona1 = new Persona("Alice", 25); 15 | 16 | console.log(persona1); 17 | 18 | persona1.nuevoMetodo = function () { 19 | console.log(`Mi nombre es ${this.nombre}`); 20 | }; 21 | -------------------------------------------------------------------------------- /ciclos/ejecucionCondicional/if/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /ciclos/ejecucionCondicional/ternario/index.js: -------------------------------------------------------------------------------- 1 | // let mensaje; 2 | 3 | // const edad = 17; 4 | 5 | // if (edad >= 18) { 6 | // mensaje = "Es mayor de edad, puede pasar"; 7 | // } else { 8 | // mensaje = "No es mayor de edad, no puede pasar"; 9 | // } 10 | 11 | // console.log(mensaje); 12 | 13 | // condición ? true : false 14 | 15 | const edad = 17; 16 | 17 | const mensaje = 18 | edad >= 18 19 | ? "Es mayor de edad, puede pasar" 20 | : "Es menor de edad, no puede pasar"; 21 | 22 | console.log(mensaje); 23 | -------------------------------------------------------------------------------- /modulo-primeros-pasos/clase-strings.js: -------------------------------------------------------------------------------- 1 | // Tipo de dato: string 2 | 3 | let string1 = 'Hola, mundo' 4 | let string2 = "JavaScript es genial" 5 | let string3 = `${string1} feliz :)` 6 | let string4 = string1 + ' ' + string2 7 | 8 | //console.log(string1) 9 | //console.log(string2) 10 | //console.log(string3) 11 | //console.log(string4) 12 | 13 | let frase = 'JavaScript es Extremadamente Genial' 14 | console.log(frase.length) 15 | console.log(frase.toLowerCase()) 16 | console.log(frase.toUpperCase()) 17 | console.log(frase.substring(0, 10)) -------------------------------------------------------------------------------- /ciclos/loops/for-in/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | for in ---> objetos 4 | 5 | propiedades = valor 6 | 7 | array, string 8 | 9 | item 10 | 11 | for (varible in objeto) { 12 | código 13 | } 14 | 15 | */ 16 | 17 | const listaDeCompras = { 18 | manzana: 5, 19 | pera: 3, 20 | naranja: 2, 21 | uva: 1, 22 | }; 23 | 24 | for (fruta in listaDeCompras) { 25 | console.log(fruta); 26 | } 27 | 28 | for (fruta in listaDeCompras) { 29 | console.log(`${fruta} : ${listaDeCompras[fruta]}`); 30 | } 31 | 32 | for (fruta of listaDeCompras) { 33 | console.log(fruta); 34 | } 35 | -------------------------------------------------------------------------------- /modulo-funciones/clase-anatomia-de-una-funcion.js: -------------------------------------------------------------------------------- 1 | function calculateDiscountedPrice (price, discountPercentage) { 2 | const discount = (price * discountPercentage) / 100 3 | const priceWithDiscount = price - discount 4 | 5 | return priceWithDiscount 6 | } 7 | 8 | const originalPrice = 1000 9 | const discountPercentage = 15 10 | const finalPrice = calculateDiscountedPrice(originalPrice, discountPercentage) 11 | 12 | console.log('Original Price: $' + originalPrice) 13 | console.log('Discount: ' + discountPercentage + '%') 14 | console.log('Price with discount: $' + finalPrice) 15 | -------------------------------------------------------------------------------- /ciclos/ejecucionCondicional/if/juego.js: -------------------------------------------------------------------------------- 1 | const numeroSecreto = Math.floor(Math.random() * 10 + 1); 2 | 3 | const numeroJugador = parseInt( 4 | prompt("Adivina el número secreto entre el 1 al 10") 5 | ); 6 | 7 | console.log(`Este es el número con el que juegas ${numeroJugador}`); 8 | 9 | if (numeroJugador === numeroSecreto) { 10 | console.log("¡Felicidades, adivinaste el número secreto!"); 11 | } else if (numeroJugador < numeroSecreto) { 12 | console.log("El número es demasiado bajo, intenta de nuevo"); 13 | } else { 14 | console.log("El número es muy alto, intenta de nuevo"); 15 | } 16 | -------------------------------------------------------------------------------- /modulo-primeros-pasos/clase-tipos-de-datos.js: -------------------------------------------------------------------------------- 1 | // PRIMITIVOS 2 | 3 | // string 4 | let nombre = 'Tere' 5 | 6 | // number 7 | let edad = 25 8 | 9 | // boolean 10 | let esMayorDeEdad = true 11 | 12 | // null 13 | let noHayValor = null 14 | 15 | // undefined 16 | let noDefinido = undefined 17 | 18 | // symbol 19 | let simboloUnico = Symbol('único') 20 | 21 | // bigint 22 | let numeroGrande = 2n 23 | 24 | // COMPLEJOS 25 | 26 | // object 27 | let carro = { 28 | marca: 'Tesla', 29 | modelo: 'Model S' 30 | } 31 | 32 | // array 33 | let frutas = ['manzana', 'banano', 'uvas'] 34 | 35 | // function 36 | function saludar () {} -------------------------------------------------------------------------------- /modulo-funciones/clase-funciones-puras-e-impuras.js: -------------------------------------------------------------------------------- 1 | // Funciones puras 2 | 3 | // Side Effects 4 | // 1. Modificar variables globales 5 | // 2. Modificar parámetros 6 | // 3. Solicitudes HTTP 7 | // 4. Imprimir mensajes en pantalla o consola 8 | // 5. Manipulación del DOM 9 | // 6. Obtener la hora actual 10 | 11 | function sum (a, b) { 12 | return a + b 13 | } 14 | 15 | // Funciones impuras 16 | 17 | function sum (a, b) { 18 | console.log('A: ', a) 19 | return a + b 20 | } 21 | 22 | let total = 0 23 | 24 | function sumWithSideEffect (a) { 25 | total += a 26 | return total 27 | } 28 | 29 | // Función pura 30 | 31 | function square(x) { 32 | return x * x 33 | } 34 | 35 | function addTen (y) { 36 | return y + 10 37 | } 38 | 39 | const number = 5 40 | const finalResut = addTen(square(number)) 41 | console.log(finalResut) -------------------------------------------------------------------------------- /modulo-arrays/clase-spread-operator.js: -------------------------------------------------------------------------------- 1 | // 1. Copying an Array 2 | 3 | const originalArray = [1, 2, 3, 4, 5] 4 | const copyOfAnArray = [...originalArray] 5 | 6 | console.log(originalArray) 7 | console.log(copyOfAnArray) 8 | 9 | // 2. Combining Arrrays 10 | 11 | const array1 = [1, 2, 3] 12 | const array2 = [4, 5, 6] 13 | const combinedArray = [...array1, ...array2] 14 | 15 | console.log(array1) 16 | console.log(array2) 17 | console.log(combinedArray) 18 | 19 | // 3. Creating Arrays with Additional Elements 20 | 21 | const baseArray = [1, 2, 3] 22 | const arrayWithAdditionalElements = [...baseArray, 4, 5, 6] 23 | 24 | console.log(baseArray) 25 | console.log(arrayWithAdditionalElements) 26 | 27 | // 4. Pass elements to functions 28 | 29 | function sum (a, b, c) { 30 | return a + b + c 31 | } 32 | 33 | const numbers = [1, 2, 3] 34 | const result = sum(...numbers) 35 | 36 | console.log(result) -------------------------------------------------------------------------------- /modulo-funciones/clase-arrow-functions.js: -------------------------------------------------------------------------------- 1 | const greeting = function (name) { 2 | return `Hi, ${name}` 3 | } 4 | 5 | // Arrow function - explicit return 6 | 7 | const newGreeting = (name) => { 8 | return `Hi, ${name}` 9 | } 10 | 11 | // Arrow function - implicit return 12 | 13 | const newGreetingImplicit = name => `Hi, ${name}` 14 | const newGreetingImplicitWithTwoParameters = (name, lastName) => `Hi, I'm ${name} ${lastName}` 15 | 16 | // Lexical Binding 17 | 18 | const finctionalCharacter = { 19 | name: 'Uncle Ben', 20 | messageWithTraditionalFunction: function (message) { 21 | console.log(`${this.name} says: ${message}`) 22 | }, 23 | messageWithArrowFunction: (message) => { 24 | console.log(`${this.name} says: ${message}`) 25 | } 26 | } 27 | 28 | finctionalCharacter.messageWithTraditionalFunction('With great power comes great responsability.') 29 | finctionalCharacter.messageWithArrowFunction('Beware of Doctor Octopus.') 30 | -------------------------------------------------------------------------------- /modulo-funciones/clase-funciones-vs-metodos.js: -------------------------------------------------------------------------------- 1 | // Capacidades que tienen las funciones al igual que otros objetos 2 | 3 | // 1. Pasar funciones como argumentos -> callback 4 | 5 | function a () {} 6 | function b (a) {} 7 | b(a) 8 | 9 | // Retornar funciones 10 | 11 | function a () { 12 | function b () {} 13 | return b 14 | } 15 | 16 | // Asignar funciones a variables -> Expresión de función 17 | 18 | const a = function () {} 19 | 20 | // Tener propiedades y métodos 21 | 22 | function a () {} 23 | const obj = {} 24 | a.call(obj) 25 | 26 | // Anidar funciones -> Nested functions 27 | 28 | function a () { 29 | function b () { 30 | function c () { 31 | 32 | } 33 | c() 34 | } 35 | b() 36 | } 37 | a() 38 | 39 | // ¿Es posible almacenar funciones en objetos? 40 | 41 | const rocket = { 42 | name: 'Falcon 9', 43 | launchMessage: function launchMessage () { 44 | console.log('🔥') 45 | } 46 | } 47 | 48 | rocket.launchMessage() -------------------------------------------------------------------------------- /obj&Classes/clases/prototype&inheritance/index.js: -------------------------------------------------------------------------------- 1 | class Animal { 2 | constructor(nombre, tipo) { 3 | this.nombre = nombre; 4 | this.tipo = tipo; 5 | } 6 | emitirSonido() { 7 | console.log("El animal emite un sonido"); 8 | } 9 | } 10 | 11 | class Perro extends Animal { 12 | constructor(nombre, tipo, raza) { 13 | super(nombre, tipo); 14 | this.raza = raza; 15 | } 16 | emitirSonido() { 17 | console.log("El perro ladra"); 18 | } 19 | correr() { 20 | console.log(`${this.nombre} corre alegremente`); 21 | } 22 | } 23 | 24 | const perro1 = new Perro("Bobby", "Perro", "Pug"); 25 | 26 | console.log(perro1); 27 | perro1.correr(); 28 | perro1.emitirSonido(); 29 | 30 | perro1.nuevoMetodo = function () { 31 | console.log("Este es un metodo"); 32 | }; 33 | 34 | Perro.prototype.segundoMetodo = function () { 35 | console.log("Es otro nuevo metodo"); 36 | }; 37 | 38 | Animal.prototype.tercerMetodo = function () { 39 | console.log("Un metodo más"); 40 | }; 41 | -------------------------------------------------------------------------------- /ciclos/ejecucionCondicional/switch/index.js: -------------------------------------------------------------------------------- 1 | // switch(expresion) { 2 | // case valor1: 3 | // // código a ejecutar 4 | // break; 5 | // case valor2: 6 | // // código a ejecutar 7 | // break; 8 | // case valor1: 9 | // // código a ejecutar 10 | // break; 11 | // case valor2: 12 | // // código a ejecutar 13 | // break; 14 | // default: 15 | // // código 16 | // } 17 | 18 | let expr = "Uvas"; 19 | 20 | switch ( 21 | expr // === 22 | ) { 23 | case "Naranjas": 24 | console.log("Las naranjas cuestan $20 el kilo"); 25 | break; 26 | case "Manzanas": 27 | console.log("Las manzanas cuestan $43 el kilo"); 28 | break; 29 | case "Plátanos": 30 | console.log("El plátano esta en $30 el kilo"); 31 | break; 32 | case "Mangos": 33 | case "Papayas": 34 | console.log("Los mangos y las papayas cuestan $ 25 pesos el kilo"); 35 | break; 36 | default: 37 | console.log(`Lo siento, no contamos con ${expr}`); 38 | } 39 | 40 | console.log("¿Hay algo más que desees?"); 41 | -------------------------------------------------------------------------------- /modulo-arrays/clase-map-forEach.js: -------------------------------------------------------------------------------- 1 | // Methods that iterate over an array. 2 | // Methods that DO NOT modify the original array (Immutability). 3 | 4 | // map() 5 | 6 | const numbers = [1, 2, 3, 4, 5] 7 | const squaredNumbers = numbers.map(num => num * num) 8 | 9 | console.log(numbers) 10 | console.log(squaredNumbers) 11 | 12 | // forEach() 13 | 14 | const colors = ['red', 'pink', 'blue'] 15 | const iteratedColors = colors.forEach(color => console.log(color)) 16 | 17 | console.log(colors) 18 | console.log(iteratedColors) 19 | 20 | // Exercise: Fahrenheit to Celsius conversion 21 | 22 | const temperaturesInFahrenheit = [32, 68, 95, 104, 212] 23 | 24 | const temperaturesInCelsius = temperaturesInFahrenheit.map(fahrenheit => (5/9) * (fahrenheit - 32)) 25 | 26 | console.log('Temperatures In Fahrenheit: ', temperaturesInFahrenheit) 27 | console.log('Temperatures In Celsius: ', temperaturesInCelsius) 28 | 29 | // Exercise: Sum of Elements in an Array 30 | 31 | const newNumbers = [1, 2, 3, 4, 5] 32 | 33 | let sum = 0 34 | 35 | newNumbers.forEach(number => { 36 | sum += number 37 | }) 38 | 39 | console.log('Array of Numbers: ', newNumbers) 40 | console.log('Sum of Numbers: ', sum) 41 | -------------------------------------------------------------------------------- /modulo-funciones/clase-closures.js: -------------------------------------------------------------------------------- 1 | /* 2 | CLOSURE: función que tiene acceso a variables de un ámbito externo, 3 | incluso después de que esa función haya terminado de ejecutarse. 4 | 5 | Ámbito léxico: cada vez que se declara una función, 6 | crea su propio ámbito léxico, y puede acceder a las variables 7 | dentro de ese ámbito y a las variables en ámbitos superiores. 8 | */ 9 | 10 | function outerFunction () { 11 | let outerVariable = "I am from outer function" 12 | 13 | function innterFunction () { 14 | console.log(outerVariable) 15 | } 16 | 17 | return innterFunction 18 | } 19 | 20 | const closureExample = outerFunction() 21 | closureExample() 22 | 23 | function createCounter () { 24 | let count = 0 25 | 26 | return function() { 27 | count++ 28 | console.log(count) 29 | } 30 | } 31 | 32 | const counterA = createCounter() 33 | counterA() 34 | counterA() 35 | 36 | const counterB = createCounter() 37 | counterB() 38 | 39 | function outer () { 40 | let message = "Hello, " 41 | 42 | function inner (name) { 43 | console.log(message + name) 44 | } 45 | 46 | return inner 47 | } 48 | 49 | const closureA = outer() 50 | const closureB = outer() 51 | 52 | closureA("Alice") 53 | closureA("Bob") 54 | -------------------------------------------------------------------------------- /modulo-arrays/clase-filter-reduce.js: -------------------------------------------------------------------------------- 1 | // Methods that iterate over an array. 2 | // Methods that DO NOT modify the original array (Immutability). 3 | 4 | // filter() 5 | 6 | const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 7 | const evenNumbers = numbers.filter(number => number % 2 === 0) 8 | 9 | console.log(numbers) 10 | console.log(evenNumbers) 11 | 12 | // reduce() · case 1 13 | 14 | const numbersReduce = [1, 2, 3, 4, 5] 15 | const sum = numbersReduce.reduce((accumulator, currentValue) => accumulator + currentValue, 0) 16 | 17 | console.log(numbersReduce) 18 | console.log(sum) 19 | 20 | // reduce() · case 2 21 | 22 | const words = ['apple', 'banana', 'hello', 'bye', 'banana', 'bye', 'bye'] 23 | 24 | const wordFrecuency = words.reduce((accumulator, currentValue) => { 25 | if (accumulator[currentValue]) { 26 | accumulator[currentValue]++ 27 | } else { 28 | accumulator[currentValue] = 1 29 | } 30 | return accumulator 31 | }, {}) 32 | 33 | console.log(wordFrecuency) 34 | 35 | // Exercise: Passing Grade Average 36 | 37 | const grades = [85, 92, 60, 78, 95, 66, 88, 50, 94] 38 | 39 | const passingGrades = grades.filter(grade => grade >= 70) 40 | 41 | const averagePassingGrade = passingGrades.reduce((sum, grade) => sum + grade, 0) / passingGrades.length 42 | 43 | console.log('Original Grades: ', grades) 44 | console.log('Passing Grades: ', passingGrades) 45 | console.log('Average Passing Grade: ', averagePassingGrade) -------------------------------------------------------------------------------- /obj&Classes/objetos/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | estructura de datos 4 | 5 | key / value 6 | 7 | objeto { 8 | propiedad: valor, 9 | propiedad: valor, 10 | propiedad: valor 11 | Metodos() 12 | } 13 | 14 | */ 15 | 16 | const persona = { 17 | nombre: "John", 18 | edad: 30, 19 | direccion: { 20 | calle: "Av Insurgentre 187", 21 | ciudad: "CDMX", 22 | }, 23 | saludar() { 24 | console.log(`hola, mi nombre es ${persona.nombre}`); 25 | }, 26 | }; 27 | 28 | // Imprimamos el objeto 29 | 30 | console.log(persona); 31 | 32 | // Imprimamos la propiedad nombre 33 | 34 | console.log(persona.nombre); 35 | 36 | // Imprimamos el metodo saludar 37 | 38 | persona.saludar(); 39 | 40 | // 41 | // 42 | // 43 | // 44 | // 45 | // Agrergamos una propiedad al objeto en este caso telefono 46 | 47 | persona.telefono = "555-555-5555"; 48 | 49 | console.log(persona.telefono); 50 | 51 | // Agregamos un metodo al objeto 52 | 53 | persona.despedir = () => { 54 | console.log("Adios"); 55 | }; 56 | 57 | persona.despedir(); 58 | 59 | // Acceder a una propiedad de un objeto anidado / Metodo 60 | 61 | console.log(persona.direccion.calle); 62 | 63 | // 64 | // 65 | // 66 | // 67 | // 68 | // 69 | // Eliminar una propiedad de un objeto 70 | 71 | delete persona.telefono; 72 | 73 | console.log(persona.telefono); 74 | 75 | // Eliminar un metodo de un objeto 76 | 77 | delete persona.despedir; 78 | 79 | console.log(persona.despedir()); 80 | -------------------------------------------------------------------------------- /obj&Classes/clases/constructor/index.js: -------------------------------------------------------------------------------- 1 | // let persona = { 2 | // nombre: "Diego", 3 | // apellido: "De Granda", 4 | // edad: 35 5 | // } 6 | 7 | function Persona(nombre, apellido, edad) { 8 | this.nombre = nombre; 9 | this.apellido = apellido; 10 | this.edad = edad; 11 | } 12 | // 13 | // 14 | // 15 | // 16 | // 17 | // 18 | // Creamos una instancia de Persona 19 | 20 | const persona1 = new Persona("Juan", "Perez", 20); 21 | 22 | console.log(persona1); 23 | 24 | // Creamos otra instancia de Persona 25 | 26 | const persona2 = new Persona("Diego", "De Granda", 35); 27 | 28 | console.log(persona2); 29 | // 30 | // 31 | // 32 | // 33 | // 34 | // 35 | // Agregamos una propiedad a la clase Persona 36 | // En este caso la forma en que funciona prototype es que se agrega a todas las instancias de la clase Persona 37 | // Esta propiedad no se agregará a la clase Persona en si, solo al prototipo de la clase del cual se crean las instancias 38 | 39 | Persona.prototype.telefono = "555-555-5555"; 40 | 41 | // Creemos una propiedad solo para una de nuestras instancias 42 | 43 | persona1.nacionalidad = "Mexicana"; 44 | 45 | console.log(persona1); 46 | console.log(persona2); 47 | // 48 | // 49 | // 50 | // 51 | // 52 | // 53 | // 54 | // Creamos un metodo para la clase Persona 55 | 56 | Persona.prototype.saludar = function () { 57 | console.log(`Hola, me llamo ${this.nombre} ${this.apellido}`); 58 | }; 59 | 60 | persona1.saludar(); 61 | persona2.saludar(); 62 | -------------------------------------------------------------------------------- /ciclos/retoFinal/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | Jueguemos a adivinar la palabra. 3 | 4 | El usuario tiene 3 intentos para adivinar la palabra oculta. 5 | 6 | Requerimientos: 7 | 8 | - El juego debe tener una palabra oculta. 9 | - El juego puede dar 1 pista de la palabra. 10 | - El usuario debe ingresar una suposición. 11 | - El juego debe verificar si la suposición del usuario es correcta. 12 | - El juego debe tener un número limitado de intentos. 13 | - El juego debe terminar cuando el usuario adivine la palabra o se quede sin intentos. 14 | */ 15 | 16 | let palabraOculta = "javascript"; 17 | let intentos = 3; 18 | 19 | function verificarSuposicion(suposicion, palabraOculta) { 20 | if (suposicion.toLowerCase() === palabraOculta) { 21 | return true; 22 | } 23 | return false; 24 | } 25 | 26 | function jugarAdivinaLaPalabra() { 27 | alert("Bienvenido a jugar adivina la palabra oculta"); 28 | alert("Tienes 3 intentos para adivinar la palabra"); 29 | alert("-pista- la palabra oculta es un lenguaje de programación"); 30 | 31 | while (intentos > 0) { 32 | let suposicion = prompt("Adivina la palabra: "); 33 | 34 | if (verificarSuposicion(suposicion, palabraOculta)) { 35 | alert("¡Correcto! Has adivinado la palabra."); 36 | break; 37 | } else { 38 | intentos--; 39 | if (intentos > 0) { 40 | alert(`Incorrecto, Aun tienes ${intentos} intento restantes`); 41 | } else { 42 | alert(`Agotaste tus intentos, la palarba oculta era ${palabraOculta}`); 43 | } 44 | } 45 | } 46 | } 47 | 48 | jugarAdivinaLaPalabra(); 49 | -------------------------------------------------------------------------------- /modulo-arrays/clase-introduccion-arrays.js: -------------------------------------------------------------------------------- 1 | // How to create an Array ? 2 | 3 | // 1. new Array() or Array() 4 | 5 | const fruits = Array('apple', 'banana', 'orange') 6 | console.log(fruits) 7 | 8 | const justOneNumber = Array(12) 9 | console.log(justOneNumber) 10 | 11 | const number = Array(1, 2, 3, 4, 5) 12 | console.log(number) 13 | 14 | // 2. Array literal syntax 15 | 16 | const oneNumber = [4] 17 | console.log(oneNumber) 18 | 19 | const emptyArray = [] 20 | console.log(emptyArray) 21 | 22 | const sports = ['soccer', 'tennis', 'rugby'] 23 | console.log(sports) 24 | 25 | const recipeIngredients = [ 26 | 'Flour', 27 | true, 28 | 2, 29 | { 30 | ingredient: 'Milk', quantity: '1 cup' 31 | }, 32 | false 33 | ] 34 | console.log(recipeIngredients) 35 | 36 | // Accessing array elements 37 | 38 | const firstFruit = fruits[0] 39 | console.log(firstFruit) 40 | 41 | // length property 42 | 43 | const numberOfFruits = fruits.length 44 | console.log(numberOfFruits) 45 | 46 | // Mutability 47 | 48 | fruits.push('watermelon') 49 | console.log(fruits) 50 | 51 | // Immutability 52 | 53 | const newFruits = fruits.concat(['grape', 'kiwi']) 54 | console.log(fruits) 55 | console.log(newFruits) 56 | 57 | // Checking arrays with Array.isArray() 58 | 59 | const isArray = Array.isArray(fruits) 60 | console.log(isArray) 61 | 62 | // Practical exercise: sum all elements of an array. 63 | 64 | const numbersArray = [1, 2, 3, 4, 5] 65 | let sum = 0 66 | 67 | for (let i = 0; i < numbersArray.length; i++) { 68 | sum += numbersArray[i] 69 | } 70 | 71 | console.log(sum) 72 | -------------------------------------------------------------------------------- /asincronia-js/GETRequest/app.js: -------------------------------------------------------------------------------- 1 | const listElement = document.querySelector(".posts"); 2 | const postTemplate = document.getElementById("single-post"); 3 | const form = document.querySelector("#new-post form"); 4 | const fetchButton = document.querySelector("#available-posts button"); 5 | const postList = document.querySelector("#posts-container"); 6 | 7 | function sendHTTPRequest(method, url, data) { 8 | return fetch(url, { 9 | method: method, 10 | body: JSON.stringify(data), 11 | headers: { 12 | "Content-Type": "application/json", 13 | }, 14 | }).then((response) => { 15 | return response.json(); 16 | }); 17 | } 18 | 19 | async function fecthPosts() { 20 | const responseData = await sendHTTPRequest( 21 | "GET", 22 | "https://jsonplaceholder.typicode.com/posts" 23 | ); 24 | console.log(responseData); 25 | const listOfPosts = responseData; 26 | 27 | for (const post of listOfPosts) { 28 | const postContainer = document.createElement("article"); 29 | postContainer.id = post.id; 30 | postContainer.classList.add("post-item"); 31 | 32 | const title = document.createElement("h2"); 33 | title.textContent = post.title; 34 | 35 | const body = document.createElement("p"); 36 | body.textContent = post.body; 37 | 38 | const button = document.createElement("button"); 39 | button.textContent = "DELETE Content"; 40 | 41 | postContainer.append(title); 42 | postContainer.append(body); 43 | postContainer.append(button); 44 | 45 | listElement.append(postContainer); 46 | } 47 | } 48 | 49 | fetchButton.addEventListener("click", fecthPosts); 50 | -------------------------------------------------------------------------------- /modulo-arrays/clase-push-pop.js: -------------------------------------------------------------------------------- 1 | // Methods that modify the original array (Mutability). 2 | 3 | // push() 4 | 5 | const countries = ['USA', 'Canada', 'UK'] 6 | const newCountries = countries.push('Germany', 'Australia') 7 | 8 | console.log(countries) 9 | console.log(newCountries) 10 | 11 | // pop() 12 | 13 | const removedCountry = countries.pop() 14 | 15 | console.log(countries) 16 | console.log(removedCountry) 17 | 18 | // Exercise: Managing a Stack 19 | 20 | let bookCart = [] 21 | 22 | const ADD_TO_CART_ACTION = 'addToCart' 23 | const REMOVE_FROM_CART_ACTION = 'removeFromCart' 24 | const VIEW_CART_ACTION = 'viewCart' 25 | 26 | function viewCart () { 27 | console.log('Current Cart of Books: ', bookCart) 28 | } 29 | 30 | function performCartActions (action, newBook) { 31 | switch (action) { 32 | case ADD_TO_CART_ACTION: 33 | bookCart.push(newBook) 34 | break; 35 | case REMOVE_FROM_CART_ACTION: 36 | if (bookCart.length === 0) { 37 | console.log('Cart is empty. No books to remove.') 38 | } else { 39 | const removedBook = bookCart.pop() 40 | console.log(`Removed book from the cart: ${removedBook}`) 41 | } 42 | break; 43 | case VIEW_CART_ACTION: 44 | viewCart() 45 | break; 46 | default: 47 | console.log('Invalid action. Please choose a vaid option.') 48 | } 49 | } 50 | 51 | performCartActions(ADD_TO_CART_ACTION, 'Think like a monk') 52 | performCartActions(VIEW_CART_ACTION) 53 | performCartActions(ADD_TO_CART_ACTION, 'Ego is the enemy.') 54 | performCartActions(VIEW_CART_ACTION) 55 | performCartActions(REMOVE_FROM_CART_ACTION) 56 | -------------------------------------------------------------------------------- /modulo-arrays/clase-find-findIndex.js: -------------------------------------------------------------------------------- 1 | // Methods that iterate over an array. 2 | // Methods that DO NOT modify the original array (Immutability). 3 | 4 | // find() 5 | 6 | const multipleOf5 = [5, 10, 15, 20] 7 | const firstNumberGreaterThan10 = multipleOf5.find(number => number > 10) 8 | 9 | console.log(multipleOf5) 10 | console.log(firstNumberGreaterThan10) 11 | 12 | // findIndex() 13 | 14 | const randomNumber = [6, 14, 27, 56, 40] 15 | const indexNumber = randomNumber.findIndex(number => number > 50) 16 | 17 | console.log(randomNumber) 18 | console.log(indexNumber) 19 | 20 | // Exercise: Raffle Winner Verification Program 21 | 22 | const winningParticipants = [ 23 | { id: 1, name: 'Jennifer', ticketNumber: 001 }, 24 | { id: 8, name: 'Michael', ticketNumber: 008 }, 25 | { id: 15, name: 'Emily', ticketNumber: 015 }, 26 | { id: 47, name: 'Charlie', ticketNumber: 047 } 27 | ] 28 | 29 | function findWinnerByName (name) { 30 | const winner = winningParticipants.find(participants => participants.name === name) 31 | return winner || 'No winner found with that name.' 32 | } 33 | 34 | function findIndexWinnerByTicket (ticketNumber) { 35 | const index = winningParticipants.findIndex(participants => participants.ticketNumber === ticketNumber) 36 | return index !== -1 ? index : 'No winner found with that ticket number.' 37 | } 38 | 39 | function displayWinnerInformation (winner) { 40 | if (winner !== undefined && winner != null && winner !== 'No winner found with that name.') { 41 | console.log('Winner information: ', winner) 42 | } else { 43 | console.log('No winner found.') 44 | } 45 | } 46 | 47 | const winnerByName = findWinnerByName('Emily') 48 | const indexWinnerByTicket = findIndexWinnerByTicket(008) 49 | 50 | displayWinnerInformation(winnerByName) 51 | console.log('Index of Winner by Ticket Number: ', indexWinnerByTicket) -------------------------------------------------------------------------------- /obj&Classes/retoFinal/index.js: -------------------------------------------------------------------------------- 1 | /* 2 | Requerimientos del reto: 3 | 4 | 1. El usuario debe poder ingresar su usuario y contraseña 5 | 2. El sistema debe ser capaz de validar si el usuario y contraseña ingresados por el usuario existen en la base de datos 6 | 3. Si el usuario y contraseña son correctos, el sistema debe mostrar un mensaje de bienvenida y mostrar el timeline del usuario. 7 | 4. Si el usuario y contraseña son incorrectos, el sistema debe mostrar un mensaje de error y no mostrar ningun timeline. 8 | 9 | */ 10 | 11 | const usersDatabase = [ 12 | { 13 | username: "andres", 14 | password: "123", 15 | }, 16 | { 17 | username: "caro", 18 | password: "456", 19 | }, 20 | { 21 | username: "mariana", 22 | password: "789", 23 | }, 24 | ]; 25 | 26 | const usersTimeline = [ 27 | { 28 | username: "Estefany", 29 | timeline: "Me encata Javascript!", 30 | }, 31 | { 32 | username: "Oscar", 33 | timeline: "Bebeloper es lo mejor!", 34 | }, 35 | { 36 | username: "Mariana", 37 | timeline: "A mi me gusta más el café que el té", 38 | }, 39 | { 40 | username: "Andres", 41 | timeline: "Yo hoy no quiero trabajar", 42 | }, 43 | ]; 44 | 45 | const username = prompt("Cuál es tu usuario?"); 46 | const password = prompt("Cuál es tu contraseña?"); 47 | 48 | function usuarioExistente(username, password) { 49 | for (let i = 0; i < usersDatabase.length; i++) { 50 | if ( 51 | usersDatabase[i].username === username && 52 | usersDatabase[i].password === password 53 | ) { 54 | return true; 55 | } 56 | } 57 | return false; 58 | } 59 | 60 | function signIn(username, password) { 61 | if (usuarioExistente(username, password)) { 62 | alert(`Bienvenido a tu cuenta ${username}`); 63 | console.log(usersTimeline); 64 | } else { 65 | alert("Uuups, usuario o contraseña incorrectos!"); 66 | } 67 | } 68 | 69 | signIn(username, password); 70 | -------------------------------------------------------------------------------- /asincronia-js/POSTRequest/app.js: -------------------------------------------------------------------------------- 1 | const listElement = document.querySelector(".posts"); 2 | const postTemplate = document.getElementById("single-post"); 3 | const form = document.querySelector("#new-post form"); 4 | const fetchButton = document.querySelector("#available-posts button"); 5 | const postList = document.querySelector("#posts-container"); 6 | 7 | function sendHTTPRequest(method, url, data) { 8 | return fetch(url, { 9 | method: method, 10 | body: JSON.stringify(data), 11 | headers: { 12 | "Content-Type": "application/json", 13 | }, 14 | }).then((response) => { 15 | return response.json(); 16 | }); 17 | } 18 | 19 | async function fecthPosts() { 20 | const responseData = await sendHTTPRequest( 21 | "GET", 22 | "https://jsonplaceholder.typicode.com/posts" 23 | ); 24 | console.log(responseData); 25 | const listOfPosts = responseData; 26 | 27 | for (const post of listOfPosts) { 28 | const postContainer = document.createElement("article"); 29 | postContainer.id = post.id; 30 | postContainer.classList.add("post-item"); 31 | 32 | const title = document.createElement("h2"); 33 | title.textContent = post.title; 34 | 35 | const body = document.createElement("p"); 36 | body.textContent = post.body; 37 | 38 | const button = document.createElement("button"); 39 | button.textContent = "DELETE Content"; 40 | 41 | postContainer.append(title); 42 | postContainer.append(body); 43 | postContainer.append(button); 44 | 45 | listElement.append(postContainer); 46 | } 47 | } 48 | 49 | fetchButton.addEventListener("click", fecthPosts); 50 | 51 | async function createPost(title, content) { 52 | const userId = Math.random(); 53 | const post = { 54 | title: title, 55 | body: content, 56 | userId: userId, 57 | }; 58 | 59 | sendHTTPRequest("POST", "https://jsonplaceholder.typicode.com/posts", post); 60 | } 61 | 62 | form.addEventListener("submit", (event) => { 63 | event.preventDefault(); 64 | const title = event.currentTarget.querySelector("#title").value; 65 | const content = event.currentTarget.querySelector("#content").value; 66 | 67 | createPost(title, content); 68 | }); 69 | -------------------------------------------------------------------------------- /asincronia-js/DELETERequest/app.js: -------------------------------------------------------------------------------- 1 | const listElement = document.querySelector(".posts"); 2 | const postTemplate = document.getElementById("single-post"); 3 | const form = document.querySelector("#new-post form"); 4 | const fetchButton = document.querySelector("#available-posts button"); 5 | const postList = document.querySelector("#posts-container"); 6 | 7 | function sendHTTPRequest(method, url, data) { 8 | return fetch(url, { 9 | method: method, 10 | body: JSON.stringify(data), 11 | headers: { 12 | "Content-Type": "application/json", 13 | }, 14 | }).then((response) => { 15 | return response.json(); 16 | }); 17 | } 18 | 19 | async function fecthPosts() { 20 | const responseData = await sendHTTPRequest( 21 | "GET", 22 | "https://jsonplaceholder.typicode.com/posts" 23 | ); 24 | console.log(responseData); 25 | const listOfPosts = responseData; 26 | 27 | for (const post of listOfPosts) { 28 | const postContainer = document.createElement("article"); 29 | postContainer.id = post.id; 30 | postContainer.classList.add("post-item"); 31 | 32 | const title = document.createElement("h2"); 33 | title.textContent = post.title; 34 | 35 | const body = document.createElement("p"); 36 | body.textContent = post.body; 37 | 38 | const button = document.createElement("button"); 39 | button.textContent = "DELETE Content"; 40 | 41 | postContainer.append(title); 42 | postContainer.append(body); 43 | postContainer.append(button); 44 | 45 | listElement.append(postContainer); 46 | } 47 | } 48 | 49 | fetchButton.addEventListener("click", fecthPosts); 50 | 51 | async function createPost(title, content) { 52 | const userId = Math.random(); 53 | const post = { 54 | title: title, 55 | body: content, 56 | userId: userId, 57 | }; 58 | 59 | sendHTTPRequest("POST", "https://jsonplaceholder.typicode.com/posts", post); 60 | } 61 | 62 | form.addEventListener("submit", (event) => { 63 | event.preventDefault(); 64 | const title = event.currentTarget.querySelector("#title").value; 65 | const content = event.currentTarget.querySelector("#content").value; 66 | 67 | createPost(title, content); 68 | }); 69 | 70 | postList.addEventListener("click", (event) => { 71 | console.log(event); 72 | if (event.target.tagName === "BUTTON") { 73 | const postId = event.target.closest("article").id; 74 | console.log(postId); 75 | sendHTTPRequest( 76 | "DELETE", 77 | `https://jsonplaceholder.typicode.com/posts/${postId}` 78 | ); 79 | } 80 | }); 81 | -------------------------------------------------------------------------------- /asincronia-js/DELETERequest/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 107 | 108 | 109 | 110 |
111 |
112 |
113 | 114 | 115 |
116 |
117 | 118 | 119 |
120 | 121 |
122 |
123 | 124 |
125 | 126 |
127 |
128 | 129 | 130 | 131 | 132 | -------------------------------------------------------------------------------- /asincronia-js/GETRequest/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 107 | 108 | 109 | 110 |
111 |
112 |
113 | 114 | 115 |
116 |
117 | 118 | 119 |
120 | 121 |
122 |
123 | 124 |
125 | 126 |
127 |
128 | 129 | 130 | 131 | 132 | -------------------------------------------------------------------------------- /asincronia-js/POSTRequest/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 107 | 108 | 109 | 110 |
111 |
112 |
113 | 114 | 115 |
116 |
117 | 118 | 119 |
120 | 121 |
122 |
123 | 124 |
125 | 126 |
127 |
128 | 129 | 130 | 131 | 132 | -------------------------------------------------------------------------------- /asincronia-js/GettingStartedHTTP/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 107 | 108 | 109 | 110 | 111 |
112 |
113 |
114 | 115 | 116 |
117 |
118 | 119 | 120 |
121 | 122 |
123 |
124 | 125 |
126 | 127 |
128 |
129 | 130 | 131 | 132 | 133 | --------------------------------------------------------------------------------