diff --git a/Basic/03-beginner-exercises.js b/Basic/03-beginner-exercises.js index 2e7dd657..63b6178c 100644 --- a/Basic/03-beginner-exercises.js +++ b/Basic/03-beginner-exercises.js @@ -4,21 +4,91 @@ Vídeo: https://youtu.be/1glVfFxj8a4?t=4733 */ // 1. Escribe un comentario en una línea +// Este es un comentario de una línea // 2. Escribe un comentario en varias líneas +/* +Este es un comentario +en varias líneas +*/ // 3. Declara variables con valores asociados a todos los datos de tipo primitivos +let myName = "Jean" // String +let myAge = 22 // Number +let isStudent = true // Boolean +let myHeight = 1.69 // Number (float) +let undefinedValue // Undefined +let nullValue = null // Null +let mySymbol = Symbol("symbol") // Symbol +let myBigInt = BigInt(1234567890123456789012345678901234567890) // BigInt +let myBigInt2 = 1234567890123456789012345678901234567890n // BigInt (sufijo n) // 4. Imprime por consola el valor de todas las variables +console.log(myName) // String +console.log(myAge) // Number +console.log(isStudent) // Boolean +console.log(myHeight) // Number (float) +console.log(undefinedValue) // Undefined +console.log(nullValue) // Null +console.log(mySymbol) // Symbol +console.log(myBigInt) // BigInt +console.log(myBigInt2) // BigInt (sufijo n) // 5. Imprime por consola el tipo de todas las variables +console.log(typeof myName) // String +console.log(typeof myAge) // Number +console.log(typeof isStudent) // Boolean +console.log(typeof myHeight) // Number (float) +console.log(typeof undefinedValue) // Undefined +console.log(typeof nullValue) // Null +console.log(typeof mySymbol) // Symbol +console.log(typeof myBigInt) // BigInt +console.log(typeof myBigInt2) // BigInt (sufijo n) // 6. A continuación, modifica los valores de las variables por otros del mismo tipo +myName = "Jean Carlos" // String +myAge = 23 // Number +isStudent = false // Boolean +myHeight = 1.70 // Number (float) +undefinedValue = undefined // Undefined +nullValue = null // Null +mySymbol = Symbol("newSymbol") // Symbol +myBigInt = BigInt(9876543210987654321098765432109876543210) // BigInt +myBigInt2 = 9876543210987654321098765432109876543210n // BigInt (sufijo n) // 7. A continuación, modifica los valores de las variables por otros de distinto tipo +myName = 123 // Number (antes String) +myAge = "veintitrés" // String (antes Number) +isStudent = 0 // Number (antes Boolean) +myHeight = "uno punto setenta" // String (antes Number) +undefinedValue = 42 // Number (antes Undefined) +nullValue = "nulo" // String (antes Null) +mySymbol = 123 // Number (antes Symbol) +myBigInt = "mil" // String (antes BigInt) +myBigInt2 = true // Boolean (antes BigInt) // 8. Declara constantes con valores asociados a todos los tipos de datos primitivos +const myConstantName = "Jean" // String +const myConstantAge = 22 // Number +const isConstantStudent = true // Boolean +const myConstantHeight = 1.69 // Number (float) +const undefinedConstantValue = undefined // Undefined +const nullConstantValue = null // Null +const myConstantSymbol = Symbol("symbol") // Symbol +const myConstantBigInt = BigInt(1234567890123456789012345678901234567890) // BigInt +const myConstantBigInt2 = 1234567890123456789012345678901234567890n // BigInt (sufijo n) // 9. A continuación, modifica los valores de las constantes +// (esto debería dar error al ejecutarlo) +// myConstantName = "Carlos" // String (antes String) +// myConstantAge = 23 // Number (antes Number) +// isConstantStudent = false // Boolean (antes Boolean) +// myConstantHeight = 1.70 // Number (float) (antes Number (float)) +// undefinedConstantValue = undefined // Undefined (antes Undefined) +// nullConstantValue = null // Null (antes Null) +// myConstantSymbol = Symbol("newSymbol") // Symbol (antes Symbol) +// myConstantBigInt = BigInt(9876543210987654321098765432109876543210) // BigInt (antes BigInt) +// myConstantBigInt2 = 9876543210987654321098765432109876543210n // BigInt (sufijo n) (antes BigInt (sufijo n)) + // 10. Comenta las líneas que produzcan algún tipo de error al ejecutarse \ No newline at end of file diff --git a/Basic/05-operators-exercises.js b/Basic/05-operators-exercises.js index a6265eac..819eb959 100644 --- a/Basic/05-operators-exercises.js +++ b/Basic/05-operators-exercises.js @@ -4,22 +4,72 @@ Vídeo: https://youtu.be/1glVfFxj8a4?t=6458 */ // 1. Crea una variable para cada operación aritmética +let suma = 5 + 3; // Suma +let resta = 10 - 4; // Resta +let multiplicacion = 6 * 7; // Multiplicación +let division = 20 / 4; // División +let modulo = 10 % 3; // Módulo // 2. Crea una variable para cada tipo de operación de asignación, // que haga uso de las variables utilizadas para las operaciones aritméticas +let sumaAsignacion = 5; // Inicializa la variable +sumaAsignacion += 3; // Suma + +let restaAsignacion = 10; // Inicializa la variable +restaAsignacion -= 4; // Resta + +let multiplicacionAsignacion = 6; // Inicializa la variable +multiplicacionAsignacion *= 7; // Multiplicación + +let divisionAsignacion = 20; // Inicializa la variable +divisionAsignacion /= 4; // División + +let moduloAsignacion = 10; // Inicializa la variable +moduloAsignacion %= 3; // Módulo + // 3. Imprime 5 comparaciones verdaderas con diferentes operadores de comparación +console.log(5 > 3); // Mayor que +console.log(10 < 20); // Menor que +console.log(15 >= 10); // Mayor o igual que +console.log(8 <= 8); // Menor o igual que +console.log(5 === 5); // Igual que + // 4. Imprime 5 comparaciones falsas con diferentes operadores de comparación +console.log(5 < 3); // Menor que +console.log(10 > 20); // Mayor que +console.log(15 <= 10); // Menor o igual que +console.log(8 >= 8); // Mayor o igual que +console.log(5 !== 5); // Diferente de + // 5. Utiliza el operador lógico and +let andCondition = (5 > 3) && (10 < 20); // Ambas condiciones son verdaderas +console.log(andCondition); // true + // 6. Utiliza el operador lógico or +let orCondition = (5 < 3) || (10 > 20); // Al menos una condición es verdadera +console.log(orCondition); // false + // 7. Combina ambos operadores lógicos +let combinedCondition = (5 > 3 && 10 < 20) || (15 > 10 && 8 < 5); // Al menos una condición es verdadera +console.log(combinedCondition); // true + // 8. Añade alguna negación +let negationCondition = !(5 < 3); // Negación de una condición +console.log(negationCondition); // true + // 9. Utiliza el operador ternario -// 10. Combina operadores aritméticos, de comparáción y lógicas \ No newline at end of file +let ternaryCondition = (5 > 3) ? "Es verdadero" : "Es falso"; // Operador ternario +console.log(ternaryCondition); // "Es verdadero" + +// 10. Combina operadores aritméticos, de comparáción y lógicas + +let complexCondition = ((5 + 3) > 7) && (10 < (20 / 4)); // Combinación de operadores +console.log(complexCondition); // true \ No newline at end of file diff --git a/Basic/07-strings-exercises.js b/Basic/07-strings-exercises.js index c08f0166..2b4c42a2 100644 --- a/Basic/07-strings-exercises.js +++ b/Basic/07-strings-exercises.js @@ -5,20 +5,62 @@ Vídeo: https://youtu.be/1glVfFxj8a4?t=7226 // 1. Concatena dos cadenas de texto +let string1 = "Hola"; +let string2 = "Mundo"; +let concatenatedString = string1 + " " + string2 +console.log(concatenatedString); // "Hola Mundo" + // 2. Muestra la longitud de una cadena de texto +let stringLength = concatenatedString.length +console.log(stringLength); // 10 + // 3. Muestra el primer y último carácter de un string +let firstCharacter = concatenatedString.charAt(0) +let lastCharacter = concatenatedString.charAt(concatenatedString.length - 1) +console.log(firstCharacter); // "H" +console.log(lastCharacter); // "o" + // 4. Convierte a mayúsculas y minúsculas un string +let upperCaseString = concatenatedString.toUpperCase() +let lowerCaseString = concatenatedString.toLowerCase() + // 5. Crea una cadena de texto en varias líneas +let multiLineString = `Hola +Mundo +Esto es una cadena de texto en varias líneas.` + // 6. Interpola el valor de una variable en un string +let myName = "Jean" +let greeting = `Hola, ${myName}` +console.log(greeting); // "Hola, Jean" + // 7. Reemplaza todos los espacios en blanco de un string por guiones +let stringWithSpaces = "Hola Mundo" +let stringWithDashes = stringWithSpaces.replace(" ", "-") +console.log(stringWithDashes); // "Hola-Mundo" + // 8. Comprueba si una cadena de texto contiene una palabra concreta +let wordToCheck = "Mundo" +let containsWord = concatenatedString.includes(wordToCheck) +console.log(containsWord); // true + // 9. Comprueba si dos strings son iguales -// 10. Comprueba si dos strings tienen la misma longitud \ No newline at end of file +let stringA = "Hola" +let stringB = "Hola" +let areEqual = stringA === stringB +console.log(areEqual); // true + +// 10. Comprueba si dos strings tienen la misma longitud + +let stringC = "Hola" +let stringD = "Mundo" +let haveSameLength = stringC.length === stringD.length +console.log(haveSameLength); // false \ No newline at end of file diff --git a/Basic/09-conditionals-exercises.js b/Basic/09-conditionals-exercises.js index 380e6542..47edd0b6 100644 --- a/Basic/09-conditionals-exercises.js +++ b/Basic/09-conditionals-exercises.js @@ -7,23 +7,217 @@ Vídeo: https://youtu.be/1glVfFxj8a4?t=8652 // 1. Imprime por consola tu nombre si una variable toma su valor +let nombre = "Jean" +if (nombre) { + console.log("Hola " + nombre) +} + // 2. Imprime por consola un mensaje si el usuario y contraseña concide con unos establecidos +let usuario = "Jean" +let contrasena = "1234" +if (usuario === "Jean" && contrasena === "1234") { + console.log("Bienvenido " + usuario) +} + // 3. Verifica si un número es positivo, negativo o cero e imprime un mensaje +let numero = -5 +if (numero > 0) { + console.log("El número es positivo") +} +else if (numero < 0) { + console.log("El número es negativo") +} +else { + console.log("El número es cero") +} + // 4. Verifica si una persona puede votar o no (mayor o igual a 18) e indica cuántos años le faltan +let edad = 16 +if (edad >= 18) { + console.log("Puede votar") +} +else { + let edadFaltante = 18 - edad + console.log("No puede votar, le faltan " + edadFaltante + " años") +} + // 5. Usa el operador ternario para asignar el valor "adulto" o "menor" a una variable // dependiendo de la edad +let edad2 = 20 +let tipoPersona = (edad2 >=18) ? "adulto" : "menor" + // 6. Muestra en que estación del año nos encontramos dependiendo del valor de una variable "mes" +// 1. Invierno: diciembre, enero, febrero +// 2. Primavera: marzo, abril, mayo +// 3. Verano: junio, julio, agosto +// 4. Otoño: septiembre, octubre, noviembre + +let mes = "enero" +if (mes === "diciembre" || mes === "enero" || mes === "febrero") { + console.log("Invierno") +} +else if (mes === "marzo" || mes === "abril" || mes === "mayo") { + console.log("Primavera") +} +else if (mes === "junio" || mes === "julio" || mes === "agosto") { + console.log("Verano") +} +else if (mes === "septiembre" || mes === "octubre" || mes === "noviembre") { + console.log("Otoño") +} +else { + console.log("Mes no válido") +} + // 7. Muestra el número de días que tiene un mes dependiendo de la variable del ejercicio anterior +// 1. Invierno: diciembre (31), enero (31), febrero (28 o 29) +// 2. Primavera: marzo (31), abril (30), mayo (31) +// 3. Verano: junio (30), julio (31), agosto (31) +// 4. Otoño: septiembre (30), octubre (31), noviembre (30) + +if (mes === "diciembre") { + console.log("31 días") +} +else if (mes === "enero") { + console.log("31 días") +} +else if (mes === "febrero") { + console.log("28 o 29 días") +} +else if (mes === "marzo") { + console.log("31 días") +} +else if (mes === "abril") { + console.log("30 días") +} +else if (mes === "mayo") { + console.log("31 días") +} +else if (mes === "junio") { + console.log("30 días") +} +else if (mes === "julio") { + console.log("31 días") +} +else if (mes === "agosto") { + console.log("31 días") +} +else if (mes === "septiembre") { + console.log("30 días") +} +else if (mes === "octubre") { + console.log("31 días") +} +else if (mes === "noviembre") { + console.log("30 días") +} +else { + console.log("Mes no válido") +} + // switch // 8. Usa un switch para imprimir un mensaje de saludo diferente dependiendo del idioma +// 1. Español: "Hola" +// 2. Inglés: "Hello" +// 3. Francés: "Bonjour" +// 4. Italiano: "Ciao" +// 5. Portugués: "Olá" + +let idioma = "español" +switch (idioma) { + case "español": + console.log("Hola") + break + case "inglés": + console.log("Hello") + break + case "francés": + console.log("Bonjour") + break + case "italiano": + console.log("Ciao") + break + case "portugués": + console.log("Olá") + break + default: + console.log("Idioma no válido") +} + // 9. Usa un switch para hacer de nuevo el ejercicio 6 -// 10. Usa un switch para hacer de nuevo el ejercicio 7 \ No newline at end of file +switch (mes) { + case "diciembre": + case "enero": + case "febrero": + console.log("Invierno") + break + case "marzo": + case "abril": + case "mayo": + console.log("Primavera") + break + case "junio": + case "julio": + case "agosto": + console.log("Verano") + break + case "septiembre": + case "octubre": + case "noviembre": + console.log("Otoño") + break + default: + console.log("Mes no válido") +} + +// 10. Usa un switch para hacer de nuevo el ejercicio 7 + +switch (mes) { + case "diciembre": + console.log("31 días") + break + case "enero": + console.log("31 días") + break + case "febrero": + console.log("28 o 29 días") + break + case "marzo": + console.log("31 días") + break + case "abril": + console.log("30 días") + break + case "mayo": + console.log("31 días") + break + case "junio": + console.log("30 días") + break + case "julio": + console.log("31 días") + break + case "agosto": + console.log("31 días") + break + case "septiembre": + console.log("30 días") + break + case "octubre": + console.log("31 días") + break + case "noviembre": + console.log("30 días") + break + default: + console.log("Mes no válido") +} \ No newline at end of file diff --git a/Basic/13-structures-exercises.js b/Basic/13-structures-exercises.js index 1b094502..53cb7cf1 100644 --- a/Basic/13-structures-exercises.js +++ b/Basic/13-structures-exercises.js @@ -5,20 +5,64 @@ Vídeo: https://youtu.be/1glVfFxj8a4?t=11451 // 1. Crea un array que almacene cinco animales +let animales = ["perro", "gato", "elefante", "jirafa", "león"] +console.log(animales) // ["perro", "gato", "elefante", "jirafa", "león"] + // 2. Añade dos más. Uno al principio y otro al final +animales.unshift("tortuga") // Añade al principio +animales.push("delfín") // Añade al final +console.log(animales) // ["tortuga", "perro", "gato", "elefante", "jirafa", "león", "delfín"] + // 3. Elimina el que se encuentra en tercera posición +animales.splice(2, 1) // Elimina el que se encuentra en tercera posición (índice 2) +console.log(animales) // ["tortuga", "perro", "elefante", "jirafa", "león", "delfín"] + // 4. Crea un set que almacene cinco libros +let libros = new Set(["Cien años de soledad", "El amor en los tiempos del cólera", "Crónica de una muerte anunciada", "El otoño del patriarca", "El general en su laberinto"]) +console.log(libros) // Set(5) { "Cien años de soledad", "El amor en los tiempos del cólera", "Crónica de una muerte anunciada", "El otoño del patriarca", "El general en su laberinto" } + // 5. Añade dos más. Uno de ellos repetido +libros.add("Cien años de soledad") // Añade un libro repetido +libros.add("El amor en los tiempos antigüos") // Añade otro libro +console.log(libros) // Set(6) { "Cien años de soledad", "El amor en los tiempos del cólera", "Crónica de una muerte anunciada", "El otoño del patriarca", "El general en su laberinto", "El amor en los tiempos antigüos" } + // 6. Elimina uno concreto a tu elección +libros.delete("El amor en los tiempos del cólera") // Elimina un libro concreto +console.log(libros) // Set(5) { "Cien años de soledad", "Crónica de una muerte anunciada", "El otoño del patriarca", "El general en su laberinto", "El amor en los tiempos antigüos" } + // 7. Crea un mapa que asocie el número del mes a su nombre +let meses = new Map([ + [1, "Enero"], + [2, "Febrero"], + [3, "Marzo"], + [4, "Abril"], + [5, "Mayo"], + [6, "Junio"], + [7, "Julio"], + [8, "Agosto"], + [9, "Septiembre"], + [10, "Octubre"], + [11, "Noviembre"], + [12, "Diciembre"] +]) + // 8. Comprueba si el mes número 5 existe en el map e imprime su valor +console.log(meses.has(5) ? `El mes número 5 es ${meses.get(5)}` : "El mes número 5 no existe") // El mes número 5 es Mayo + // 9. Añade al mapa una clave con un array que almacene los meses de verano -// 10. Crea un Array, transfórmalo a un Set y almacénalo en un Map \ No newline at end of file +meses.set("verano", ["Junio", "Julio", "Agosto"]) + +// 10. Crea un Array, transfórmalo a un Set y almacénalo en un Map + +let array = ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"] +let set = new Set(array) // Transforma el array a un Set +let map = new Map() // Crea un nuevo Map +map.set("meses", set) // Almacena el Set en el Map \ No newline at end of file diff --git a/Basic/15-loops-exercises.js b/Basic/15-loops-exercises.js index 2a27cdd0..1915b55d 100644 --- a/Basic/15-loops-exercises.js +++ b/Basic/15-loops-exercises.js @@ -7,20 +7,85 @@ Vídeo: https://youtu.be/1glVfFxj8a4?t=12732 // 1. Crea un bucle que imprima los números del 1 al 20 +// for (let i = 1; i <= 20; i++){ +// console.log(i); +// } + // 2. Crea un bucle que sume todos los números del 1 al 100 y muestre el resultado +// let suma = 0; +// for (let i = 1; i <= 100; i++){ +// suma += i; +// console.log(suma); +// } + // 3. Crea un bucle que imprima todos los números pares entre 1 y 50 +// for (let i = 1; i <= 50; i++){ +// if (i % 2 === 0){ +// console.log(i); +// } +// } + // 4. Dado un array de nombres, usa un bucle para imprimir cada nombre en la consola +// const nombres = ['Juan', 'María', 'Pedro', 'Ana', 'Luis']; +// for (let i = 0; i < nombres.length; i++){ +// console.log(nombres[i]); +// } + // 5. Escribe un bucle que cuente el número de vocales en una cadena de texto +// const texto = 'Hola, ¿cómo estás?'; +// let contadorVocales = 0; +// const vocales = 'aeiouáéíóúAEIOUÁÉÍÓÚ'; +// for (let i = 0; i < texto.length; i++){ +// if (vocales.includes(texto[i])){ +// contadorVocales++; +// } +// } +// console.log(`El número de vocales en "${texto}" es: ${contadorVocales}`); + // 6. Dado un array de números, usa un bucle para multiplicar todos los números y mostrar el producto +// const numeros = [1, 2, 3, 4, 5]; +// let producto = 1; +// for (let i = 0; i < numeros.length; i++){ +// producto *= numeros[i]; +// console.log(`El producto de los números es: ${producto}`); +// } + // 7. Escribe un bucle que imprima la tabla de multiplicar del 5 +// const numero = 5; +// for (let i = 1; i <= 10; i++){ +// console.log(`${numero} x ${i} = ${numero * i}`); +// } + // 8. Usa un bucle para invertir una cadena de texto +// let cadena = 'Hola, mundo!'; +// let cadenaInvertida = ''; +// for (let i = cadena.length - 1; i >= 0; i--) { +// cadenaInvertida += cadena[i]; +// } +// console.log(`La cadena invertida es: ${cadenaInvertida}`); + // 9. Usa un bucle para generar los primeros 10 números de la secuencia de Fibonacci -// 10. Dado un array de números, usa un bucle para crear un nuevo array que contenga solo los números mayores a 10 \ No newline at end of file +// const fibonacci = [0, 1]; +// for (let i = 2; i < 10; i++){ +// fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2]; +// } +// console.log(`Los primeros 10 números de la secuencia de Fibonacci son: ${fibonacci}`); + +// 10. Dado un array de números, usa un bucle para crear un nuevo array que contenga solo los números mayores a 10 + +const numeros = [5, 12, 8, 20, 3, 15]; +const mayoresA10 = []; +for (let i = 0; i < numeros.length; i++){ + if (numeros[i] > 10){ + mayoresA10.push(numeros[i]); + } +} +console.log(`Los números mayores a 10 son: ${mayoresA10}`); \ No newline at end of file