├── 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 |
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 |
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 |
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 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
--------------------------------------------------------------------------------