|
| 1 | +/* |
| 2 | + * EJERCICIO: |
| 3 | + * - Crea ejemplos de funciones básicas que representen las diferentes |
| 4 | + * posibilidades del lenguaje: |
| 5 | + * Sin parámetros ni retorno, con uno o varios parámetros, con retorno... |
| 6 | + * - Comprueba si puedes crear funciones dentro de funciones. |
| 7 | + * - Utiliza algún ejemplo de funciones ya creadas en el lenguaje. |
| 8 | + * - Pon a prueba el concepto de variable LOCAL y GLOBAL. |
| 9 | + * - Debes hacer print por consola del resultado de todos los ejemplos. |
| 10 | + * (y tener en cuenta que cada lenguaje puede poseer más o menos posibilidades) |
| 11 | + * |
| 12 | + * DIFICULTAD EXTRA (opcional): |
| 13 | + * Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número. |
| 14 | + * - La función imprime todos los números del 1 al 100. Teniendo en cuenta que: |
| 15 | + * - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro. |
| 16 | + * - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro. |
| 17 | + * - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas. |
| 18 | + * - La función retorna el número de veces que se ha impreso el número en lugar de los textos. |
| 19 | + * |
| 20 | + * Presta especial atención a la sintaxis que debes utilizar en cada uno de los casos. |
| 21 | + * Cada lenguaje sigue una convenciones que debes de respetar para que el código se entienda. |
| 22 | + */ |
| 23 | + |
| 24 | +// Ejemplo de función sin parámetros ni retorno |
| 25 | +function saludar() { |
| 26 | + console.log('Hola!'); |
| 27 | +} |
| 28 | +saludar(); // Imprime: Hola! |
| 29 | + |
| 30 | +// Ejemplo de función con un parámetro y sin retorno |
| 31 | +function saludarPersona(nombre) { |
| 32 | + console.log ('Hola ' + nombre + '!'); |
| 33 | +} |
| 34 | +saludarPersona('Carlos'); // Imprime: Hola Carlos! |
| 35 | + |
| 36 | +// Ejemplo de función con varios parámetros y sin retorno |
| 37 | +function sumar(a, b) { |
| 38 | + console.log("La suma es: "+ (a + b)); |
| 39 | +} |
| 40 | +sumar(2, 3); // Imprime: La suma es: 5 |
| 41 | + |
| 42 | +// Ejemplo de función con retorno y sin parámetros |
| 43 | +function obtenerMensaje() { |
| 44 | + return 'Este es un mensaje'; |
| 45 | +} |
| 46 | +console.log(obtenerMensaje()); // Imprime: Este es un mensaje |
| 47 | + |
| 48 | +// Ejemplo de función con varios parámetros y con retorno |
| 49 | +function multiplicar(a, b) { |
| 50 | + return a * b; |
| 51 | +} |
| 52 | +let multiplicarResultado = multiplicar(2, 3); |
| 53 | +console.log('El resultado de la multiplicación es: ' + multiplicarResultado); // Imprime: El resultado de la multiplicación es: 6 |
| 54 | + |
| 55 | +// Ejemplo de función dentro de función(anidada) |
| 56 | +function operacionCompleja(a, b) { |
| 57 | + function sumar(x, y) { |
| 58 | + return x + y; |
| 59 | + } |
| 60 | + function multiplicar(x, y) { |
| 61 | + return x * y; |
| 62 | + } |
| 63 | + |
| 64 | + let suma = sumar(a, b); |
| 65 | + let multiplicacion = multiplicar(a, b); |
| 66 | + |
| 67 | + console.log('La suma es: ' + suma); |
| 68 | + console.log('La multiplicación es: ' + multiplicacion); |
| 69 | +} |
| 70 | +operacionCompleja(2, 3); // Imprime: La suma es: 5, La multiplicación es: 6 |
| 71 | + |
| 72 | +// Ejemplo de función ya creada en el lenguaje |
| 73 | +let texto = 'Hola, soy un texto de ejemplo para mostrar la longitud'; |
| 74 | +console.log(texto.length); // Imprime: 54 |
| 75 | +let numeros = [1, 2, 3, 4, 5]; |
| 76 | +let numerosInvertidos = numeros.reverse(); |
| 77 | +console.log(numerosInvertidos); // Imprime: [5, 4, 3, 2, 1] |
| 78 | +let numerosOrdenados = numeros.sort(); |
| 79 | +console.log(numerosOrdenados); // Imprime: [1, 2, 3, 4, 5] |
| 80 | +let numerosDobles = numeros.map(numero => numero * 2); |
| 81 | +console.log(numerosDobles); // Imprime: [2, 4, 6, 8, 10] |
| 82 | + |
| 83 | +// Ejemplo de variable LOCAL y GLOBAL |
| 84 | + |
| 85 | +// Variable GLOBAL |
| 86 | +let variableGlobal = 'Soy una variable global'; |
| 87 | +function mostrarVariableGlobal() { |
| 88 | + console.log(variableGlobal); |
| 89 | +} |
| 90 | +mostrarVariableGlobal(); // Imprime: Soy una variable global |
| 91 | + |
| 92 | +// Variable LOCAL |
| 93 | +function mostrarVariableLocal() { |
| 94 | + let variableLocal = 'Soy una variable local'; |
| 95 | + console.log(variableLocal); |
| 96 | +} |
| 97 | +mostrarVariableLocal(); // Imprime: Soy una variable local |
| 98 | + |
| 99 | +// Variable Global y Local en el mismo ámbito |
| 100 | +let mensajeGlobal = 'Soy una variable global'; |
| 101 | + |
| 102 | +function mostrarMensaje() { |
| 103 | + let mensajeLocal = 'Soy una variable local'; |
| 104 | + console.log(mensajeGlobal);// Puede acceder a la variable global |
| 105 | + console.log(mensajeLocal); // Puede acceder a la variable local |
| 106 | +} |
| 107 | +mostrarMensaje(); // Imprime: Soy una variable global, Soy una variable local |
| 108 | +//console.log(mensajeLocal); // Genera un error porque la variable es local y no se puede acceder desde fuera de la función |
| 109 | + |
| 110 | +// Ejemplos de sombra de variables (shadowing) |
| 111 | +let mensaje = 'Soy una variable global'; |
| 112 | + |
| 113 | +function mostrarMensaje() { |
| 114 | + let mensaje = 'Soy una variable local'; |
| 115 | + console.log(mensaje); // Imprime: Soy una variable local, porque se está accediendo a la variable local "shadowing" |
| 116 | +} |
| 117 | +mostrarMensaje(); |
| 118 | +console.log(mensaje); // Imprime: Soy una variable global, porque se está accediendo a la variable global |
| 119 | + |
| 120 | +// Función que modifica una variable global |
| 121 | +let contador = 0; |
| 122 | + |
| 123 | +function incrementarContador() { |
| 124 | + contador++; |
| 125 | +} |
| 126 | +incrementarContador();// Incrementa el contador en 1 |
| 127 | +incrementarContador();// Incrementa el contador en 2 |
| 128 | +incrementarContador();// Incrementa el contador en 3 |
| 129 | +console.log("El valor del contador(global): "+contador); // Imprime: 3 |
| 130 | + |
| 131 | +// Función que modifica una variable local |
| 132 | +function incrementarContadorLocal() { |
| 133 | + let contadorLocal = 0; |
| 134 | + contadorLocal++; |
| 135 | + return contadorLocal; |
| 136 | +} |
| 137 | +let contadorLocal = incrementarContadorLocal(); // Incrementa el contador en 1 |
| 138 | +console.log("El valor del contador(local): "+contadorLocal); // Imprime: 1 |
| 139 | + |
| 140 | +// Función que modifica una variable global y local |
| 141 | +let contadorGlobal = 0; |
| 142 | +function incrementarContadores() { |
| 143 | + contadorGlobal++; |
| 144 | + let contadorLocal = 0; |
| 145 | + contadorLocal++; |
| 146 | + return contadorLocal; |
| 147 | +} |
| 148 | +incrementarContadores(); // Incrementa el contador global en 1 y el contador local en 1 |
| 149 | +incrementarContadores(); // Incrementa el contador global en 2 y el contador local en 1 |
| 150 | +incrementarContadores(); // Incrementa el contador global en 3 y el contador local en 1 |
| 151 | +console.log("El valor del contador(global): "+contadorGlobal); // Imprime: 3 |
| 152 | +console.log("El valor del contador(local): "+incrementarContadores()); // Imprime: 1 |
| 153 | + |
| 154 | +// Función que utiliza let y const para ver el enlace de bloque |
| 155 | +function mostrarVariables(){ |
| 156 | + if (true) { |
| 157 | + var variableVar = 'Soy una variable var'; // Al ser var, se puede acceder desde fuera del bloque |
| 158 | + let variableLet = 'Soy una variable let'; // Al ser let, solo se puede acceder dentro del bloque |
| 159 | + const variableConst = 'Soy una variable const'; // Al ser const, solo se puede acceder dentro del bloque |
| 160 | + console.log(variableVar); // Imprime: Soy una variable var |
| 161 | + console.log(variableLet); // Imprime: Soy una variable let |
| 162 | + console.log(variableConst); // Imprime: Soy una variable const |
| 163 | + } |
| 164 | + console.log(variableVar); // Funciona porque es una variable var y se pue// Imprime: Soy una variable var, Soy una variable let, Soy una variable const, Soy una variable varde acceder desde fuera del bloque |
| 165 | + //console.log(variableLet); // Genera un error porque es una variable let y no se puede acceder desde fuera del bloque |
| 166 | + //console.log(variableConst); // Genera un error porque es una variable const y no se puede acceder desde fuera del bloque |
| 167 | +} |
| 168 | +mostrarVariables(); |
| 169 | + |
| 170 | + |
| 171 | +// Ejericio extra de función que recibe dos parámetros de tipo cadena de texto y retorna un número |
| 172 | + |
| 173 | +function mostrarNumeros(cadena1, cadena2) { |
| 174 | + let contadorNumeros = 0; |
| 175 | + for (let i = 1; i <= 100; i++) { |
| 176 | + if (i % 3 === 0 && i % 5 === 0) { |
| 177 | + console.log(cadena1 + cadena2); |
| 178 | + } else if (i % 3 === 0) { |
| 179 | + console.log(cadena1); |
| 180 | + } else if (i % 5 === 0) { |
| 181 | + console.log(cadena2); |
| 182 | + } else { |
| 183 | + console.log(i); |
| 184 | + contadorNumeros++; |
| 185 | + } |
| 186 | + } |
| 187 | + return contadorNumeros; |
| 188 | +} |
| 189 | +let contadorNumeros = mostrarNumeros('Múltiplo de 3', 'Múltiplo de 5'); |
| 190 | +console.log('El número de veces que se ha impreso un número es: ' + contadorNumeros); |
| 191 | + |
0 commit comments