diff --git a/Practices/day_01/datatypes.js b/Practices/day_01/datatypes.js
new file mode 100644
index 0000000..9764314
--- /dev/null
+++ b/Practices/day_01/datatypes.js
@@ -0,0 +1,6 @@
+console.log('firstName ---> ', firstName, ' --->', typeof(firstName) );
+console.log('lastName ---> ', lastName, ' --->', typeof(lastName));
+console.log('active ---> ', active, ' --->', typeof(active));
+console.log('age ---> ', age, ' --->', typeof(age));
+
+
diff --git a/Practices/day_01/holamundo.js b/Practices/day_01/holamundo.js
new file mode 100644
index 0000000..66aa20b
--- /dev/null
+++ b/Practices/day_01/holamundo.js
@@ -0,0 +1 @@
+console.log('Hola world.........');
\ No newline at end of file
diff --git a/Practices/day_01/index.html b/Practices/day_01/index.html
new file mode 100644
index 0000000..2d1d490
--- /dev/null
+++ b/Practices/day_01/index.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+ Day 01
+
+
+
Day 01 - JavaScript
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Practices/day_01/introduccion.js b/Practices/day_01/introduccion.js
new file mode 100644
index 0000000..b8bec9e
--- /dev/null
+++ b/Practices/day_01/introduccion.js
@@ -0,0 +1 @@
+console.log('Hola marlon');
\ No newline at end of file
diff --git a/Practices/day_01/tasks.js b/Practices/day_01/tasks.js
new file mode 100644
index 0000000..cbd1ff8
--- /dev/null
+++ b/Practices/day_01/tasks.js
@@ -0,0 +1,25 @@
+// TASK 01: Escribe un comentario de una sola línea que diga "los comentarios pueden hacer que el código sea legible"
+// los comentarios pueden hacer que el código sea legible
+
+// TASK 02: Escribe otro comentario que diga, "Bienvenido a 30DaysOfJavaScript"
+// Bienvenido a 30DaysOfJavaScript
+
+// TASK 03: Escribe un comentario multilínea que diga, "Los comentarios pueden hacer el código legible, fácil de usar e informativo"
+/*
+ Los comentarios pueden hacer el código legible,
+ fácil de usar e informativo
+*/
+
+// TASK 04: Crea un archivo variable.js y declarar variables y asignar tipos de datos string, booleanos, indefinidos y nulos
+
+// TASK 05: Crea el archivo datatypes.js y utilizar el operador "typeof" de JavaScript para comprobar los diferentes tipos de datos. Comprueba el tipo de datos de cada variable
+
+// Declara cuatro variables sin asignar valores
+
+// Declara cuatro variables con valores asignados
+
+// Declara variables para almacenar su nombre, apellido, estado civil, país y edad en múltiples líneas
+
+// Declara variables para almacenar su nombre, apellido, estado civil, país y edad en una sola línea
+
+// Declara dos variables miEdad y tuEdad y asígneles valores iniciales y regístrese en la consola del navegador.
\ No newline at end of file
diff --git a/Practices/day_01/variable.js b/Practices/day_01/variable.js
new file mode 100644
index 0000000..f1f8a53
--- /dev/null
+++ b/Practices/day_01/variable.js
@@ -0,0 +1,8 @@
+let firstName = 'Marlon',
+ lastName,
+ active = true,
+ age=null;
+
+
+let var1, var2, var3, var4;
+
diff --git a/Practices/day_02/index.html b/Practices/day_02/index.html
new file mode 100644
index 0000000..b070b16
--- /dev/null
+++ b/Practices/day_02/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 30 days of JS
+
+
+
30 Days of JavaScript
+
+
+
\ No newline at end of file
diff --git a/Practices/day_02/tasksLevel1.js b/Practices/day_02/tasksLevel1.js
new file mode 100644
index 0000000..b3365a2
--- /dev/null
+++ b/Practices/day_02/tasksLevel1.js
@@ -0,0 +1,106 @@
+// 1. Declare una variable llamada desafío y asígnele un valor inicial '30 días de JavaScript'.
+desafio = '30 Days Of JavaScript';
+
+
+//Imprima la cadena en la consola del navegador usando console.log()
+console.log('desafio ---> ', desafio);
+
+
+// Imprima la longitud de la cadena en la consola del navegador usando console.log()
+console.log('Longitud desafio --->', desafio.length);
+
+
+// Cambie todos los caracteres de cadena a letras mayúsculas usando el método toUpperCase()
+console.log('toUpperCase() --->', desafio.toUpperCase());
+
+
+// Cambie todos los caracteres de la cadena a letras minúsculas usando el método toLowerCase()
+console.log('toLowerCase() --->', desafio.toLowerCase());
+
+
+// Corta (segmenta) la primera palabra de la cadena usando el método substr() o substring()
+console.log('substr() --->', desafio.substr(0, 2));
+
+
+// Corta la frase Days Of JavaScript de 30 Days Of JavaScript.
+let phrase = 'Days Of JavaScript';
+console.log('substr() --->', desafio.substr(0, desafio.length - phrase.length ));
+
+
+// Verifique si la cadena contiene una palabra Script usando el método includes()
+console.log('includes() --->', desafio.includes('Script'));
+
+
+// Divide la cadena en un array usando el método split()
+console.log('split() --->', desafio.split());
+
+
+// Divida la cadena 30 Days Of JavaScript en el espacio usando el método split()
+console.log('split("") --->', desafio.split(" "));
+
+
+// 'Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon' divide la cadena en la coma y cámbiala a una matriz.
+let str = 'Facebook, Google, Microsoft, Apple, IBM, Oracle, Amazon';
+console.log('split(", ") --->', str.split(", "));
+
+
+// C30 Days Of JavaScript a 30 Days Of Python usando el método replace().
+console.log('replace() --->', desafio.replace('JavaScript', 'Pyton'));
+
+
+// ¿Qué es el carácter en el índice 15 en la cadena '30 Days Of JavaScript'? Utilice el método charAt().
+console.log('charAt() --->', desafio.charAt(15));
+
+
+// ¿Cuál es el código de carácter de J en la cadena '30 Days Of JavaScript' usando charCodeAt()
+console.log('charCodeAt() --->', desafio.charCodeAt(11));
+
+
+// Use indexOf para determinar la posición de la primera aparición de a en 30 Days Of JavaScript
+console.log('indexOf() --->', desafio.indexOf('a'));
+
+
+// Utilice lastIndexOf para determinar la posición de la última aparición de a en 30 Days Of JavaScript.
+console.log('lastIndexOf() --->', desafio.lastIndexOf('a'));
+
+
+// Usa indexOf para encontrar la posición de la primera aparición de la palabra porque en la siguiente oración:'No puedes terminar una oración con porque porque porque es una conjunción'
+let str2 = 'No puedes terminar una oración con porque porque porque es una conjunción'
+console.log('indexOf() --->', str2.indexOf('porque'));
+
+
+// Usa lastIndexOf para encontrar la posición de la última aparición de la palabra porque en la siguiente oración:'No puedes terminar una oración con porque porque porque es una conjunción'
+console.log('lastIndexOf() --->', str2.lastIndexOf('porque'));
+
+
+// Usa buscar para encontrar la posición de la primera aparición de la palabra porque en la siguiente oración:'No puedes terminar una oración con porque porque porque es una conjunción'
+console.log('search()) --->', str2.search('porque'));
+
+
+// Use trim() para eliminar cualquier espacio en blanco final al principio y al final de una cadena. Por ejemplo, '30 Days Of JavaScript'.
+let str3 = ' No puedes terminar una oración con porque porque porque es una conjunción'
+console.log('str3 --->', str3);
+console.log('trim() --->', str3.trim());
+
+
+// Use el método startsWith() con la cadena 30 Days Of JavaScript y haga que el resultado sea verdadero
+console.log('startsWith() --->', desafio.startsWith('30 Days'));
+
+
+// Use el método endsWith() con la cadena 30 Days Of JavaScript y haga que el resultado sea verdadero
+console.log('endsWith() --->', desafio.endsWith('Script'));
+
+
+// Usa el método match() para encontrar todos los a en 30 Days Of JavaScript
+let pattern = /a/gi
+console.log('match() --->', desafio.match(pattern));
+
+
+// Use concat() y fusione '30 Days Of ' y 'JavaScript' en una sola cadena, '30 Days Of JavaScript'
+let strOne = '30 Days Of ';
+let strTwo = 'JavaScript';
+console.log('concat() --->', strOne.concat(strTwo));
+
+
+// Use el método repeat() para imprimir 30 Days Of JavaScript 2 veces
+console.log('repeat() --->', desafio.repeat(2));
diff --git a/Practices/day_02/tasksLevel2.js b/Practices/day_02/tasksLevel2.js
new file mode 100644
index 0000000..7d19b46
--- /dev/null
+++ b/Practices/day_02/tasksLevel2.js
@@ -0,0 +1,77 @@
+// 1. Usando console.log() imprima la siguiente declaración:
+// The quote 'There is no exercise better for the heart than reaching down and lifting people up.' by John Holmes teaches us to help one another.
+let str1 = "'There is no exercise better for the heart than reaching down and lifting people up.' by John Holmes teaches us to help one another";
+console.log(str1);
+
+
+// 2. Usando console.log() imprima la siguiente cita de la Madre Teresa:
+// "Love is not patronizing and charity isn't about pity, it is about love. Charity and love are the same -- with charity you give love, so don't just give money but reach out your hand instead."
+let str2 = "Love is not patronizing and charity isn't about pity, it is about love. Charity and love are the same -- with charity you give love, so don't just give money but reach out your hand instead."
+console.log(str2);
+
+
+// 3. Compruebe si typeof '10' es exactamente igual a 10. Si no, hágalo exactamente igual.
+console.log(typeof(Number('10')) === typeof(10));
+
+
+// 4. Compruebe si parseFloat('9.8') es igual a 10, si no, hágalo exactamente igual a 10.
+console.log(Math.round(parseFloat('9.8')) === 10);
+
+
+// 5. Verifique si 'on' se encuentra tanto en Python como en la jargon
+let str5 = 'jargon';
+console.log(str5.includes('on'));
+
+
+// 6. Espero que este curso no esté lleno de jargon. Compruebe si jargon está en la oración.
+let str6 = 'Espero que este curso no esté lleno de jargon';
+console.log(str6.includes(str5));
+
+
+// 7. Genere un número aleatorio entre 0 y 100 inclusive.
+console.log(Math.round(Math.random() * 101));
+
+
+// 8. Genere un número aleatorio entre 50 y 100 inclusive.
+let min8 = 50;
+let max8 = 101;
+console.log(Math.floor(Math.random() * (max8 - min8) + min8));
+
+
+// 9. Genere un número aleatorio entre 0 y 255 inclusive.
+let min9 = 0;
+let max9 = 256;
+console.log(Math.floor(Math.random() * (max9 - min9) + min9));
+
+
+// 10. Acceda a los caracteres de la cadena 'JavaScript' utilizando un número aleatorio.
+let str10 = 'JavaScript';
+let max10 = str10.length;
+let index = Math.floor(Math.random() * max10);
+console.log('index ---> ', index, str10[index])
+
+
+// 11. Use console.log() y caracteres de escape para imprimir el siguiente patrón.
+// 1 1 1 1 1
+// 2 1 2 4 8
+// 3 1 3 9 27
+// 4 1 4 16 64
+// 5 1 5 25 125
+let valueR1 = 1,
+ valueR2 = 2,
+ valueR3 = 3,
+ valueR4 = 4,
+ valueR5 = 5;
+console.log(`${valueR1} \t1 \t${Math.pow(valueR1, 1)} \t${Math.pow(valueR1, 2)} \t${Math.pow(valueR1, 3)}`);
+console.log(`${valueR2} \t1 \t${Math.pow(valueR2, 1)} \t${Math.pow(valueR2, 2)} \t${Math.pow(valueR2, 3)}`);
+console.log(`${valueR3} \t1 \t${Math.pow(valueR3, 1)} \t${Math.pow(valueR3, 2)} \t${Math.pow(valueR3, 3)}`);
+console.log(`${valueR4} \t1 \t${Math.pow(valueR4, 1)} \t${Math.pow(valueR4, 2)} \t${Math.pow(valueR4, 3)}`);
+console.log(`${valueR5} \t1 \t${Math.pow(valueR5, 1)} \t${Math.pow(valueR5, 2)} \t${Math.pow(valueR5, 3)}`);
+
+
+// Usa substr para separar la frase porque porque porque de la siguiente oración:'No puedes terminar una oración con porque porque porque es una conjunción'
+let str12 = 'No puedes terminar una oración con porque porque porque es una conjunción';
+let phrase12 = 'porque porque porque';
+let index12 = str12.indexOf(phrase12);
+console.log(index12);
+console.log(str12.substr(index12, phrase12.length));
\ No newline at end of file
diff --git a/Practices/day_02/tasksLevel3.js b/Practices/day_02/tasksLevel3.js
new file mode 100644
index 0000000..4766861
--- /dev/null
+++ b/Practices/day_02/tasksLevel3.js
@@ -0,0 +1,28 @@
+// 1. Cuente el número de palabras amor en esta oración:
+// El amor es lo mejor que hay en este mundo. Algunos encontraron su amor y algunos todavía están buscando su amor.
+let str1 = 'El amor es lo mejor que hay en este mundo. Algunos encontraron su amor y algunos todavía están buscando su amor'
+let pattern1 = /amor/gi;
+console.log(str1.match(pattern1).length);
+
+
+// 2. Usa match() para contar el número de todos los porque en la siguiente oración:
+// No puedes terminar una oración con porque porque porque es una conjunción
+let str2 = 'No puedes terminar una oración con porque porque porque es una conjunción';
+let pattern2 = /porque/gi;
+console.log(str2.match(pattern2).length);
+
+
+// 3. Limpia el siguiente texto y encuentra la palabra más frecuente (pista, usa replace y expresiones regulares).
+const sentence =
+"%I $am@% a %tea@cher%, &and& I lo%#ve %te@a@ching%;. The@re $is no@th@ing; &as& mo@re rewarding as educa@ting &and& @emp%o@weri@ng peo@ple. ;I found tea@ching m%o@re interesting tha@n any ot#her %jo@bs. %Do@es thi%s mo@tiv#ate yo@u to be a tea@cher!? %Th#is 30#Days&OfJavaScript &is al@so $the $resu@lt of &love& of tea&ching";
+let pattern3 = /([%$@])/gi;
+let newSentence = sentence.replace(pattern3, '');
+console.log(newSentence);
+
+
+// 4. Calcula el ingreso anual total de la persona extrayendo los números del siguiente texto.
+let str4 = 'Él gana 5000 euros de salario por mes, bono anual de 10000 euros, cursos en línea de 15000 euros por mes.';
+let patter4 = /\d+/g;
+let data = str4.match(patter4);
+let salAnual = (Number(data[0]) * 12) + (Number(data[1])) + (Number(data[2] * 12));
+console.log(`El salario anual es: ${salAnual.toFixed(2)} COP`);
\ No newline at end of file
diff --git a/Practices/day_03/index.html b/Practices/day_03/index.html
new file mode 100644
index 0000000..b070b16
--- /dev/null
+++ b/Practices/day_03/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ 30 days of JS
+
+
+
30 Days of JavaScript
+
+
+
\ No newline at end of file
diff --git a/Practices/day_03/tasksLevel1.js b/Practices/day_03/tasksLevel1.js
new file mode 100644
index 0000000..68c0321
--- /dev/null
+++ b/Practices/day_03/tasksLevel1.js
@@ -0,0 +1,125 @@
+// 1. Declare las siguientes variables y asignar un valor, use el operador
+// typeof para verificar diferentes tipos de datos:
+let firstName = 'Marlon',
+ lastName = 'García',
+ country = 'Colombia',
+ city = 'Medellín',
+ age = 50,
+ isMarried = true,
+ year = 2023;
+console.log('firstName ---> \t', typeof(firstName));
+console.log('lastName ---> \t', typeof(lastName));
+console.log('country ---> \t', typeof(country));
+console.log('city -----> \t', typeof(city));
+console.log('age ------> \t', typeof(age));
+console.log('isMarried ---> \t', typeof(isMarried));
+console.log('year ------> \t', typeof(year));
+
+
+// 2. Verifique si typeof '10' es igual a 10
+console.log(typeof('10') == 10);
+console.log(typeof('10') === 10);
+
+
+// 3. Verifique si parseInt('9.8') es igual a 10
+console.log(parseInt('9.8') == 10);
+console.log(parseInt('9.8') === 10);
+
+
+// 4. Verifique cualquier valor booleano true o false.
+console.log(isMarried == true);
+console.log(isMarried == false);
+
+
+// 5. Escriba tres declaraciones de JavaScript que proporcionen un valor verdadero.
+console.log(10 > 5);
+console.log('z' > 'm');
+console.log(Math.pow(2,4) > Math.sqrt(16));
+
+
+// 6. Escriba tres declaraciones de JavaScript que proporcionen un valor falso.
+console.log(1 > 5);
+console.log('marlon'.length < 'papá'.length);
+console.log(Math.pow(2,4) > Math.sqrt(1000));
+
+
+// 7. Calcule primero el resultado de la siguiente expresión de comparación sin usar console.log().
+// Después de decidir el resultado, confirmelo usando console.log()
+/*
+ _ 4 > 3: true
+ _ 4 >= 3: true
+ _ 4 < 3: false
+ _ 4 <= 3: false
+ _ 4 == 4: true
+ _ 4 === 4: true
+ _ 4 != 4: false
+ _ 4 !== 4: false
+ _ 4 != '4': false
+ _ 4 == '4': true
+ _ 4 === '4':false
+*/
+console.log('4 > 3 ---> \t\t',4 > 3);
+console.log('4 >= 3 ---> \t\t',4 >= 3);
+console.log('4 < 3 ---> \t\t',4 < 3);
+console.log('4 <= 3 ---> \t\t',4 <= 3);
+console.log('4 == 4 ---> \t\t',4 == 4);
+console.log('4 === 4 ---> \t\t',4 === 4);
+console.log('4 != 4 ---> \t\t',4 != 4);
+console.log('4 !== 4 ---> \t\t',4 !== 4);
+console.log('4 != "4" ---> \t\t',4 != '4');
+console.log('4 == "4" ---> \t\t',4 == '4');
+console.log('4 === "4" ---> \t\t',4 === '4');
+
+
+// 8. Encuentre la longitud de Python y jargon y haga una declaración de comparación falsa.
+console.log('Python'.length > 'jargon'.length);
+
+
+// 9. Calcule primero el resultado de las siguientes expresiones sin usar console.log().
+// Después de decidir el resultado, confirmelo usando console.log()
+/*
+ _ 4 > 3 && 10 < 12: T && T true
+ _ 4 > 3 && 10 > 12: T && F false
+ _ 4 > 3 || 10 < 12: T || T true
+ _ 4 > 3 || 10 > 12: T || F true
+ _ !(4 > 3): !T false
+ _ !(4 < 3): !F true
+ _ !(false): !F true
+ _ !(4 > 3 && 10 < 12): !(T && T) !T false
+ _ !(4 > 3 && 10 > 12): !(T && F) !F true
+ _ !(4 === '4'): !F true
+ _ No hay 'on' tanto en dragon como en python
+*/
+console.log("4 > 3 && 10 < 12 ---> ", 4 > 3 && 10 < 12);
+console.log("4 > 3 && 10 > 12 ---> ", 4 > 3 && 10 > 12);
+console.log("4 > 3 || 10 < 12 ---> ", 4 > 3 || 10 < 12);
+console.log("4 > 3 || 10 > 12 ---> ", 4 > 3 || 10 > 12);
+console.log("!(4 > 3) ---> ", !(4 > 3));
+console.log("!(4 < 3) ---> ", !(4 < 3));
+console.log("!(false) ---> ", !(false));
+console.log("!(4 > 3 && 10 < 12) ---> ", !(4 > 3 && 10 < 12));
+console.log("!(4 > 3 && 10 > 12) ---> ", !(4 > 3 && 10 > 12));
+console.log("!(4 === '4') ---> ", !(4 === '4'));
+console.log(!(!'dragon'.includes('on') && !'python'.includes('on')));
+
+
+// 10. Utilice el objeto Date para realizar las siguientes actividades
+/*
+ _ ¿Qué año es hoy?
+ _ ¿Qué mes es hoy con un número?
+ _ ¿Qué fecha es hoy?
+ _ ¿Qué día es hoy con un número?
+ _ ¿Cuál es la hora actual?
+ _ ¿Cuántos minutos hay actualmente?
+ _ Averigüe el número de segundos transcurridos desde el 1 de enero de 1970 hasta ahora.
+*/
+let currentDate = new Date();
+console.log('¿Qué año es hoy? ---> ', currentDate.getFullYear());
+console.log('¿Qué mes es hoy con un número? ---> ', currentDate.getMonth() + 1);
+let dateToday = `${currentDate.getDate()} / ${currentDate.getMonth()+1} / ${currentDate.getFullYear()}`;
+console.log('¿Qué fecha es hoy? ---> ', dateToday);
+console.log('¿Qué día es hoy con un número? ---> ', currentDate.getDay());
+let timeCurrent = `${currentDate.getHours()}:${currentDate.getMinutes()}:${currentDate.getSeconds()}`;
+console.log('¿Cuál es la hora actual? ---> ', timeCurrent);
+console.log('¿Cuántos minutos hay actualmente? ---> ', currentDate.getMinutes());
+console.log('Averigüe el número de segundos transcurridos desde el 1 de enero de 1970 hasta ahora. ---> ', Date.now());
\ No newline at end of file
diff --git a/Practices/day_03/tasksLevel2.js b/Practices/day_03/tasksLevel2.js
new file mode 100644
index 0000000..012af23
--- /dev/null
+++ b/Practices/day_03/tasksLevel2.js
@@ -0,0 +1,124 @@
+/*
+// 1. Escriba un script que solicite al usuario que ingrese la base y la altura del triángulo y calcule el área
+// de un triángulo (área = 0,5 x b x h).
+let base = Number(prompt('Ingrese la base del triángulo: '));
+let hight = Number(prompt('Ingrese la altura del triángulo: '));
+console.log(`El área del triángulo de base ${base} y altura ${hight} es: ${0.5 * base * hight}`);
+
+
+// 2. Escriba un script que solicite al usuario que ingrese el lado a, el lado b y el lado c del triángulo y calcule
+// el perímetro del triángulo (perímetro = a + b + c)
+let sideA = Number(prompt('Ingrese lado A del triángulo: '));
+let sideB = Number(prompt('Ingrese lado B del triángulo: '));
+let sideC = Number(prompt('Ingrese lado C del triángulo: '));
+console.log(`El perímetro del triángulo de lados ${sideA}, ${sideB} y ${sideC} es: ${sideA + sideB + sideC}`);
+
+// 3. Obtenga el largo y el ancho usando prompt y calcule el área del rectángulo (área = largo x ancho y el
+// perímetro del rectángulo (perímetro = 2 x (largo + ancho))
+let large = Number(prompt('Ingrese largo del rectángulo: '));
+let width = Number(prompt('Ingrese ancho del rectángulo: '));
+console.log(`El área del rectángulo de largo ${large} y ancho ${width} es: ${large * width}`);
+console.log(`El perímetro del rectángulo de largo ${large} y ancho ${width} es: ${2 * (large + width)}`);
+
+
+// 4. Obtenga el radio usando prompt y calcule el área de un círculo (área = pi x r x r) y la circunferencia
+// de un círculo (c = 2 x pi x r) donde pi = 3.14.
+let radio = Number(prompt('Ingrese el radio del círculo: '));
+console.log(`El área del círculo de radio ${radio} es: ${Math.PI * radio * radio}`);
+console.log(`La circunferencia del círculo de radio ${radio} es: ${2 * Math.PI * radio}`);
+
+
+// 5. Calcule la pendiente, la intersección X y la intersección Y de y = 2x -2
+let equation = 'y=-2x-15';
+let m = equation.split('=');
+console.log('Pendiente de la recta y=2x-2 es: ', m[1].substr(0, m[1].indexOf('x')));
+let valueY = m[1].substr(m[1].indexOf('x') + 1, m[1].length - 1);
+console.log(`Intersección con y: P(0, ${valueY})`);
+let valueX = (-1 * valueY) / m[1].substr(0, m[1].indexOf('x'));
+console.log(`Intersección con x: P(${valueX}, 0)`);
+
+
+// 6. La pendiente es m = (y2-y1)/(x2-x1). Encuentra la pendiente entre el punto (2, 2) y el punto (6,10)
+let x1 = 2,
+y1 = 2,
+x2 = 6,
+ y2 = 10;
+ let pending = (y2-y1)/(x2-x1);
+ console.log('La pendiente de la recta es: ', pending)
+
+
+ // 7. Compare la pendiente de las dos preguntas anteriores.
+ let pendingEx1 = Number(m[1].substr(0, m[1].indexOf('x')));
+let pendingEx2 = Number(pending);
+console.log(`La pendiente de los puntos (0, ${valueY}) y (${valueX}, 0) es ${pendingEx1} `);
+console.log(`La pendiente de los puntos (2, 2) y (10, 6) es ${pendingEx2} `);
+console.log('Las pendientes son iguales? ---> ', pendingEx1 === pendingEx2);
+console.log('La pendiente 1 es mayor a la pendiente 2? --->', pendingEx1 > pendingEx2);
+console.log('La pendiente 1 es menor a la pendiente 2? --->', pendingEx1 < pendingEx2);
+
+
+// 8. Calcula el valor de y (y = x2 + 6x + 9). Trate de usar diferentes valores de x y averigüe en qué valor de x y es 0.
+let x = 0;
+let y = (Math.pow(x, 2)) + (6 * x) + 9;
+console.log(`x = ${x} ---> y = ${y}`);
+
+
+// 9. Escriba un script con prompt que solicite al usuario que ingrese las horas y la tarifa por hora.
+// ¿Calcular el salario de la persona?
+let hoursJobs = Number(prompt('Ingrese horas trabajadas: '));
+let payHours = Number(prompt('Ingrese pago pot horas trabajadas: '));
+let salary = hoursJobs * payHours;
+console.log('Tiene salario de: ', salary);
+
+
+// 10. Si la longitud de su nombre es mayor que 7, diga que su nombre es largo; de lo contrario, diga que su nombre es corto.
+let myName = 'Marlon García';
+(myName.length > 7) ? console.log(`Mi nombre es largo`) : console.log(`Mi nombre es corto`);
+
+
+// 11. Compare la longitud de su nombre y la longitud de su apellido y debería obtener este resultado.
+let firstName = 'Marlon',
+lastName = 'García';
+(firstName.length > lastName.length) ?
+console.log(`Mi primer nombre, ${firstName} es más largo que mi mi apellido, ${lastName}`) :
+console.log(`Mi primer nombre, ${firstName} es más corto que mi mi apellido, ${lastName}`);
+
+
+// 12. Declare dos variables myAge y yourAge y asignarles los valores iniciales:
+let myAge = 20,
+yourAge = 40;
+(myAge > yourAge) ?
+console.log(`Soy ${myAge - yourAge} años mayor que tú`) :
+console.log(`Soy ${yourAge - myAge} años menor que tú`);
+
+
+// 13. Usando prompt, obtenga el año en que nació el usuario y, si el usuario tiene 18 años o más, permita que el usuario conduzca,
+// si no dígale que espere una cierta cantidad de años.
+let yearBirth = Number(prompt('Ingrese de nacimiento: '));
+let currentDate = new Date();
+let ageUser = currentDate.getFullYear() - yearBirth;
+(ageUser >= 18) ?
+console.log(`Tienes ${ageUser} años. Tiene edad suficiente para conducir`) :
+console.log(`Tienes ${ageUser} años. Podrás conducir después de ${18 - ageUser} años`);
+
+// 14. Escriba un script que solicite por prompt al usuario que ingrese el número de años. Calcular el número de segundos que puede
+// vivir una persona. Supongamos que alguien vive solo cien años
+let years = Number(prompt('Ingrese número de años: '));
+let quantitySeg = 365 * 24 * 60 * 60 * years;
+console.log(`La persona puede vivir ${quantitySeg} segundos`);
+*/
+
+
+// 15. Cree un formato de hora legible por humanos usando el objeto Date.
+let currentDate = new Date();
+let year = currentDate.getFullYear();
+let month = currentDate.getMonth() + 1;
+let day = currentDate.getDate();
+let hour = currentDate.getHours();
+let minutes = currentDate.getMinutes();
+// YYYY-MM-DD HH:mm
+console.log(`${year}-${month}-${day} ${hour}:${minutes}`);
+// DD-MM-YYYY HH:mm
+console.log(`${day}-${month}-${year} ${hour}:${minutes}`);
+// DD/MM/YYYY
+console.log(`${day}-${month}-${year}`);
diff --git a/Practices/day_03/tasksLevel3.js b/Practices/day_03/tasksLevel3.js
new file mode 100644
index 0000000..556006d
--- /dev/null
+++ b/Practices/day_03/tasksLevel3.js
@@ -0,0 +1,13 @@
+// 1. Cree un formato de hora legible por humanos usando el objeto Date.
+// La hora y el minuto deben ser siempre dos dígitos (7 horas deben ser 07 y 5 minutos deben ser 05)
+// YYY-MM-DD HH:mm eg. 20120-01-02 07:05
+let currentDate = new Date();
+let year = currentDate.getFullYear();
+let month = currentDate.getMonth() + 1;
+let day = currentDate.getDate();
+let hour = currentDate.getHours();
+let newHour = hour.toString().length > 1 ? hour.toString() : '0' + hour.toString();
+let minutes = currentDate.getMinutes();
+let newMinutes = minutes.toString().length > 1 ? minutes.toString() : '0' + minutes.toString();
+
+console.log(`${year}-${month}-${day} ${newHour}:${newMinutes}`);
\ No newline at end of file
diff --git a/Practices/day_04/fetch.js b/Practices/day_04/fetch.js
new file mode 100644
index 0000000..261618d
--- /dev/null
+++ b/Practices/day_04/fetch.js
@@ -0,0 +1,36 @@
+
+url = 'https://jsonplaceholder.typicode.com/posts'
+const ul = document.createElement('ul');
+
+// NORMAL
+fetch(url) // 1
+.then(response => response.json()) // 2
+.then(data => {
+ data.forEach(post => {
+ const {id, title} = post;
+ console.log(id, title);
+ const li = document.createElement('li');
+ li.style.color = 'red';
+ li.style.background = 'yellow';
+ li.innerHTML = `
`;
+ ul.append(li);
+ });
+ document.body.append(ul);
+}
+getData();
\ No newline at end of file
diff --git a/Practices/day_04/index.html b/Practices/day_04/index.html
new file mode 100644
index 0000000..ea6ac07
--- /dev/null
+++ b/Practices/day_04/index.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+ 30 days of JS
+
+
+
30 Days of JavaScript
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Practices/day_04/index.js b/Practices/day_04/index.js
new file mode 100644
index 0000000..6dde8ab
--- /dev/null
+++ b/Practices/day_04/index.js
@@ -0,0 +1,8 @@
+import React from 'react';
+import ReactDOM from 'react-dom/client';
+import App from './App';
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render(
+
+);
\ No newline at end of file
diff --git a/Practices/day_04/tasksLevel1.js b/Practices/day_04/tasksLevel1.js
new file mode 100644
index 0000000..6a9a42a
--- /dev/null
+++ b/Practices/day_04/tasksLevel1.js
@@ -0,0 +1,48 @@
+/*
+// 1. Obtenga la entrada del usuario usando el aviso ("Ingrese su edad:").
+// Si el usuario tiene 18 años o más, muestre el mensaje: 'Tiene la edad
+// suficiente para conducir', pero si no tiene 18 años, brinde otro mensaje
+// que indique que debe esperar la cantidad de años que necesita para cumplir 18.
+let ageUser = Number(prompt('Ingrese su edad: '));
+if (ageUser >= 18) {
+ console.log(`Tienes ${ageUser} años. Tiene edad suficiente para conducir`);
+} else {
+ console.log(`Tienes ${ageUser} años. Te faltan ${18 - ageUser} años para poder conducir`);
+}
+
+// 2. Compara los valores de myAge y yourAge usando if... else. Según la comparación, registre el
+// resultado en la consola indicando quién es mayor (tú o yo). Utilice prompt(“Ingrese su edad:”)
+// para obtener la edad como entrada.
+let myAge = Number(prompt('Mi edad: '));
+let yourAge = Number(prompt('Tú edad: '));
+if (myAge > yourAge) {
+ console.log(`Soy ${myAge - yourAge} años mayor, por lo tanto, tengo más edad que tú.`);
+} else {
+ console.log(`Tú eres ${yourAge - myAge} años mayor, por lo tanto, tienes más edad que yo.`);
+}
+
+
+// 3. Si a es mayor que b, devuelve 'a es mayor que b'; de lo contrario, 'a es menor que b'. Trate de implementarlo de maneras diferentes
+let a = 1,
+b = 3;
+// Usando if else
+if (a > b) {
+ console.log(`${a} es mayor que ${b}`);
+} else {
+ console.log(`${a} es menor que ${b}`);
+}
+// operador ternario.
+(a > b) ? console.log(`${a} es mayor que ${b}`) : console.log(`${a} es menor que ${b}`);
+
+
+// 4. Los números pares son divisibles por 2 y el resto es cero. ¿Cómo verificar si un
+// número es par o no usando JavaScript?
+let number = Number(prompt('Ingrese un número entero: '));
+if (number % 2 === 0) {
+ console.log(`${number} es PAR`);
+} else {
+ console.log(`${number} es IMPAR`);
+}
+
+(number % 2 === 0) ? console.log(`${number} es PAR`) : console.log(`${number} es IMPAR`);
+*/
diff --git a/Practices/day_04/tasksLevel2.js b/Practices/day_04/tasksLevel2.js
new file mode 100644
index 0000000..a0a7c00
--- /dev/null
+++ b/Practices/day_04/tasksLevel2.js
@@ -0,0 +1,87 @@
+/*
+
+// 1. Escriba un código que pueda calificar a los estudiantes de acuerdo con sus puntajes:
+// 80-100, A
+// 70-89, B
+// 60-69, C
+// 50-59, D
+// 0-49, F
+
+let score = Number(prompt('Ingrese el puntaje del estudiante: '));
+
+switch (true) {
+ case score >= 80:
+ console.log('El estudiante tiene una calificación con la letra A');
+ break;
+ case score >= 70:
+ console.log('El estudiante tiene una calificación con la letra B');
+ break;
+ case score >= 60:
+ console.log('El estudiante tiene una calificación con la letra C');
+ break;
+ case score >= 50:
+ console.log('El estudiante tiene una calificación con la letra D');
+ break;
+ case score >= 0:
+ console.log('El estudiante tiene una calificación con la letra F');
+ break;
+ default:
+ console.log('Puntaje no válido (0 - 100)');
+}
+
+
+// 2. Consulta si la temporada es Otoño, Invierno, Primavera o Verano. Si la entrada del usuario es:
+
+// Septiembre, Octubre o Noviembre, la temporada es Otoño.
+// Diciembre, Enero o Febrero, la temporada es Invierno.
+// Marzo, Abril o Mayo, la temporada es Primavera
+// Junio, Julio o Agosto, la temporada es Verano
+
+let month = prompt('Ingrese el mes: ');
+
+switch (month) {
+ case 'septiembre':
+ case 'octubre':
+ case 'noviembre':
+ console.log('Está en temporada de OTOÑO');
+ break;
+ case 'diciembre':
+ case 'enero':
+ case 'febrero':
+ console.log('Está en temporada de INVIERNO');
+ break;
+ case 'marzo':
+ case 'abril':
+ case 'mayo':
+ console.log('Está en temporada de PRIMAVERA');
+ break;
+ case 'junio':
+ case 'julio':
+ case 'agosto':
+ console.log('Está en temporada de VERANO');
+ break;
+ default:
+ console.log('Ingrese mes válido...')
+}
+*/
+
+
+// 3. Compruebe si un día es un día de fin de semana o un día laborable. Su script tomará el día como entrada.
+let day = prompt('Qué día quiere consultar: ');
+switch (day) {
+ case 'lunes':
+ case 'martes':
+ case 'miércoles':
+ case 'jueves':
+ case 'viernes':
+ console.log(`El ${day.toUpperCase()} es un día laborable`)
+ break;
+ case 'sábado':
+ case 'domingo':
+ console.log(`El ${day.toUpperCase()} es un día No laborable. Es fin de semana`)
+ break;
+ default:
+ console.log('Ingrese un día válido...')
+ break;
+}
+
diff --git a/Practices/day_04/tasksLevel3.js b/Practices/day_04/tasksLevel3.js
new file mode 100644
index 0000000..0f74596
--- /dev/null
+++ b/Practices/day_04/tasksLevel3.js
@@ -0,0 +1,57 @@
+/*
+// 1. Escribe un programa que diga el número de días en un mes.
+
+let month = prompt('Ingrese el mes: ');
+
+switch (month) {
+ case 'enero':
+ case 'marzo':
+ case 'mayo':
+ case 'julio':
+ case 'agosto':
+ case 'octubre':
+ case 'diciembre':
+ console.log(`${month.toUpperCase()} tiene 31 días`);
+ break;
+ case 'abril':
+ case 'junio':
+ case 'septiembre':
+ case 'noviembre':
+ console.log(`${month.toUpperCase()} tiene 31 días`);
+ break;
+ case 'febrero':
+ console.log(`${month.toUpperCase()} tiene 28 días`);
+ break;
+ default:
+ console.log('Ingrese mes válido...')
+}
+
+*/
+
+
+// 2. Escribe un programa que diga el número de días en un mes. Tomar en cuenta año bisiesto
+
+let month = prompt('Ingrese el mes: ');
+
+switch (month) {
+ case 'enero':
+ case 'marzo':
+ case 'mayo':
+ case 'julio':
+ case 'agosto':
+ case 'octubre':
+ case 'diciembre':
+ console.log(`${month.toUpperCase()} tiene 31 días`);
+ break;
+ case 'abril':
+ case 'junio':
+ case 'septiembre':
+ case 'noviembre':
+ console.log(`${month.toUpperCase()} tiene 31 días`);
+ break;
+ case 'febrero':
+ console.log(`${month.toUpperCase()} tiene 29 días`);
+ break;
+ default:
+ console.log('Ingrese mes válido...')
+}
\ No newline at end of file