|
| 1 | +/* |
| 2 | + * EJERCICIO: |
| 3 | + * - Crea ejemplos utilizando todos los tipos de operadores de tu lenguaje: |
| 4 | + * Aritméticos, lógicos, de comparación, asignación, identidad, pertenencia, bits... |
| 5 | + * (Ten en cuenta que cada lenguaje puede poseer unos diferentes) |
| 6 | + * - Utilizando las operaciones con operadores que tú quieras, crea ejemplos |
| 7 | + * que representen todos los tipos de estructuras de control que existan |
| 8 | + * en tu lenguaje: |
| 9 | + * Condicionales, iterativas, excepciones... |
| 10 | + * - Debes hacer print por consola del resultado de todos los ejemplos. |
| 11 | + * |
| 12 | + * DIFICULTAD EXTRA (opcional): |
| 13 | + * Crea un programa que imprima por consola todos los números comprendidos |
| 14 | + * entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3. |
| 15 | + * |
| 16 | + * Seguro que al revisar detenidamente las posibilidades has descubierto algo nuevo. |
| 17 | + */ |
| 18 | +// Operadores Aritméticos |
| 19 | +let suma = 5 + 2; // Suma (+) |
| 20 | +console.log(suma); |
| 21 | +let resta = 5 - 2; // Resta (-) |
| 22 | +console.log(resta); |
| 23 | +let multiplicacion = 5 * 2; // Multiplicación (*) |
| 24 | +console.log(multiplicacion); |
| 25 | +let division = 5 / 2; // División (/) |
| 26 | +console.log(division); |
| 27 | +let modulo = 5 % 2; // Resto o Módulo (%) |
| 28 | +console.log(modulo); |
| 29 | +let incremento = 1; // Incremento (++x o x++) |
| 30 | +console.log(incremento++,++incremento); |
| 31 | +let decremento = 1; // Decremento (--x o x--) |
| 32 | +console.log(decremento--,--decremento); |
| 33 | + |
| 34 | +// Operadores de Asignación |
| 35 | + |
| 36 | +let x = 5; // Asignación (=) |
| 37 | +console.log(x) |
| 38 | +x += 2; // Asignación de Suma (+=) |
| 39 | +console.log(x) |
| 40 | +x -= 2; // Asignación de Resta (-=) |
| 41 | +console.log(x) |
| 42 | +x *= 2; // Asignación de Multiplicación (*=) |
| 43 | +console.log(x) |
| 44 | +x /= 2; // Asignación de División (/=) |
| 45 | +console.log(x) |
| 46 | +x %= 2; // Asignación de Módulo (%=) |
| 47 | +console.log(x) |
| 48 | +x **= 2; // Asignación de Exponenciación (**=) |
| 49 | +console.log(x) |
| 50 | +// Operadores de Comparación |
| 51 | + |
| 52 | +let igual = (5 == "5"); // Igualdad Débil (==) |
| 53 | +console.log(igual); |
| 54 | +let estrictamenteIgual = (5 === "5"); // Igualdad Estricta (===) |
| 55 | +console.log(estrictamenteIgual); |
| 56 | +let diferente = (5 != "5"); // Desigualdad Débil (!=) |
| 57 | +console.log(diferente); |
| 58 | +let estrictamenteDiferente = (5 !== "5"); // Desigualdad Estricta (!==) |
| 59 | +console.log(estrictamenteDiferente); |
| 60 | +let mayor = (5 > 2); // Mayor que (>) |
| 61 | +console.log(mayor); |
| 62 | +let menor = (5 < 2); // Menor que (<) |
| 63 | +console.log(menor); |
| 64 | +let mayorOIgual = (5 >= 2); // Mayor o igual que (>=) |
| 65 | +console.log(mayorOIgual); |
| 66 | +let menorOIgual = (5 <= 2); // Menor o igual que (<=) |
| 67 | +console.log(menorOIgual); |
| 68 | +// Operadores Lógicos |
| 69 | +let and = (true && false); // Y Lógico (&&) |
| 70 | +console.log(and) |
| 71 | +let or = (true || false); // O Lógico (||) |
| 72 | +console.log(or) |
| 73 | +let not = !true; // No Lógico (!) |
| 74 | +console.log(not) |
| 75 | + |
| 76 | +// Operadores de Bit a Bit |
| 77 | +let bitAnd = (5 & 1); // AND a nivel de bits (&) |
| 78 | +console.log(bitAnd); |
| 79 | +let bitOr = (5 | 1); // OR a nivel de bits (|) |
| 80 | +console.log(bitOr); |
| 81 | +let bitXor = (5 ^ 1); // XOR a nivel de bits (^) |
| 82 | +console.log(bitXor); |
| 83 | +let bitNot = ~5; // NOT a nivel de bits (~) |
| 84 | +console.log(bitNot); |
| 85 | +let desplazarIzquierda = (5 << 1); // Desplazamiento a la izquierda (<<) |
| 86 | +console.log(desplazarIzquierda); |
| 87 | +let desplazarDerecha = (5 >> 1); // Desplazamiento a la derecha (>>) |
| 88 | +console.log(desplazarDerecha); |
| 89 | +let desplazarDerechaConCero = (5 >>> 1); // Desplazamiento a la derecha con relleno de ceros (>>>) |
| 90 | +console.log(desplazarDerechaConCero); |
| 91 | + |
| 92 | +// Operadores Ternarios |
| 93 | +let ternario = (5 > 2) ? "Mayor" : "Menor"; // Operador Ternario (condicion ? valor1 : valor2) |
| 94 | +console.log(ternario) |
| 95 | + |
| 96 | +// Operadores de Tipo |
| 97 | +let tipo = typeof 5; // Operador de Tipo (typeof) |
| 98 | +let esInstancia = ({} instanceof Object); // Operador instanceof |
| 99 | +const obj ={ |
| 100 | + propiedad:{subprop:undefined}, |
| 101 | + variable:null |
| 102 | +} |
| 103 | +// Operador de Encadenamiento Opcional |
| 104 | +let valor = obj.propiedad?.subprop; // Encadenamiento opcional (?.) |
| 105 | +console.log(valor) |
| 106 | +// Operador Nullish Coalescing |
| 107 | +let valorDefinido = obj.variable ?? "Valor por defecto"; // Nullish Coalescing (??) |
| 108 | +// Estructuras de Control de Flujo |
| 109 | +console.log(valorDefinido); |
| 110 | + |
| 111 | +// if...else |
| 112 | +let xx = 10; |
| 113 | +if (xx > 5) { |
| 114 | + console.log("x es mayor que 5"); |
| 115 | +} else if (xx === 5) { |
| 116 | + console.log("x es igual a 5"); |
| 117 | +} else { |
| 118 | + console.log("x es menor que 5"); |
| 119 | +} |
| 120 | + |
| 121 | +// switch |
| 122 | +let color = "rojo"; |
| 123 | +switch (color) { |
| 124 | + case "rojo": |
| 125 | + console.log("El color es rojo"); |
| 126 | + break; |
| 127 | + case "azul": |
| 128 | + console.log("El color es azul"); |
| 129 | + break; |
| 130 | + default: |
| 131 | + console.log("Color no reconocido"); |
| 132 | +} |
| 133 | + |
| 134 | +// Operador Ternario (condición ? valor1 : valor2) |
| 135 | +let edad = 18; |
| 136 | +let mensaje = (edad >= 18) ? "Eres mayor de edad" : "Eres menor de edad"; |
| 137 | +console.log(mensaje); |
| 138 | + |
| 139 | +// Estructuras de Control de Bucles (Loops) |
| 140 | + |
| 141 | +// for |
| 142 | +for (let i = 0; i < 5; i++) { |
| 143 | + console.log(i); |
| 144 | +} |
| 145 | + |
| 146 | +// for...of (para iterar sobre iterables como arrays) |
| 147 | +let array = [1, 2, 3, 4]; |
| 148 | +for (let valor of array) { |
| 149 | + console.log(valor); |
| 150 | +} |
| 151 | + |
| 152 | +// for...in (para iterar sobre propiedades enumerables de un objeto) |
| 153 | +let objeto = { nombre: "Juan", edad: 25 }; |
| 154 | +for (let propiedad in objeto) { |
| 155 | + console.log(`${propiedad}: ${objeto[propiedad]}`); |
| 156 | +} |
| 157 | + |
| 158 | +// while |
| 159 | +let contador = 0; |
| 160 | +while (contador < 5) { |
| 161 | + console.log(contador); |
| 162 | + contador++; |
| 163 | +} |
| 164 | + |
| 165 | +// do...while |
| 166 | +let num = 0; |
| 167 | +do { |
| 168 | + console.log(num); |
| 169 | + num++; |
| 170 | +} while (num < 5); |
| 171 | + |
| 172 | +// Estructura de Control para Excepciones |
| 173 | + |
| 174 | +// try...catch...finally |
| 175 | +try { |
| 176 | + let resultado = 10 / 0; // Posible error |
| 177 | + console.log(resultado); |
| 178 | +} catch (error) { |
| 179 | + console.log("Ocurrió un error: " + error.message); |
| 180 | +} finally { |
| 181 | + console.log("Esto se ejecuta siempre"); |
| 182 | +} |
| 183 | + |
| 184 | +// break |
| 185 | +for (let i = 0; i < 10; i++) { |
| 186 | + if (i === 5) { |
| 187 | + break; // Rompe el bucle si i es igual a 5 |
| 188 | + } |
| 189 | + console.log(i); |
| 190 | +} |
| 191 | + |
| 192 | +// continue |
| 193 | +for (let i = 0; i < 10; i++) { |
| 194 | + if (i === 5) { |
| 195 | + continue; // Salta el resto del código en la iteración actual si i es igual a 5 |
| 196 | + } |
| 197 | + console.log(i); |
| 198 | +} |
| 199 | + |
| 200 | +// Estructura de Control asincrónica |
| 201 | + |
| 202 | +// async...await (para manejar promesas de forma síncrona) |
| 203 | +async function obtenerDatos() { |
| 204 | + try { |
| 205 | + let respuesta = await fetch('https://api.example.com/datos'); |
| 206 | + let datos = await respuesta.json(); |
| 207 | + console.log(datos); |
| 208 | + } catch (error) { |
| 209 | + console.log("Error al obtener los datos: " + error.message); |
| 210 | + } |
| 211 | +} |
| 212 | +//reto extra |
| 213 | +/* * DIFICULTAD EXTRA (opcional): |
| 214 | + * Crea un programa que imprima por consola todos los números comprendidos |
| 215 | + * entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3. |
| 216 | + * |
| 217 | + * Seguro que al revisar detenidamente las posibilidades has descubierto algo nuevo. */ |
| 218 | +function numbersTentoFifhtty(){ |
| 219 | + const final = 55; |
| 220 | + let start = 10; |
| 221 | + while(start<=55){ |
| 222 | + start++; |
| 223 | + console.log(start%2===0&&start!==16&&start%3!==0?start:''); |
| 224 | + } |
| 225 | +} |
0 commit comments