Dominar el uso de las funciones es una de las 5 habilidades fundamentales para construir algoritmos:
Básicamente, una función es un montón de código envuelto entre llaves que puedes ejecutar en cualquier momento cada vez que quieras. Por ejemplo:
1//el nombre de la función es "multiply" y recibe 2 parámetros: a & b 2function multiply(a, b) { 3 //la función devuelve la multiplicación de esos 2 parámetros 4 return a * b; 5}
La idea es tener una librería con cientos de funciones y usarlas como nos plazca, declaras todas tus funciones y luego las puedes usar y reutilizar todo el tiempo.
1let resultOfMultiplication = multiply(2,4); 2// resultOfMultiplication será 8
La programación es muy abstracta y sucede mucho que no tienes idea de lo que escribiste ayer. Antes de que existieran las funciones, los algoritmos eran esta enorme serie interminable de líneas de código donde los desarrolladores tenían dificultades y se perderían. Es difícil para tu cerebro seguir un procedimiento/algoritmo de gran longitud; mientras más líneas de código, más abstracto se vuelve.
Al utilizar funciones tienes las siguientes ventajas:
Si lo piensas bien, las funciones son equivalentes a los libros. Almacenan conocimiento y la forma de hacer las cosas y en futuros desarrollos simplemente los reutilizas en lugar de tener que resolver todo de nuevo.
Todas las funciones deben comenzar y terminar en algún lugar, esto se llama el alcance de la función. Puedes delimitar el alcance usando llaves de esta forma:
1 2//esta parte del código está FUERA de la función "multiply" 3 4function multiply(a, b) { 5 6 //esta parte del código está DENTRO de mi función "multiply" 7 8 return a * b; 9 10 //esta parte del código está DENTRO de mi función pero nunca se ejecutará porque se encuentra DESPUÉS del return 11} 12 13//esta parte del código está FUERA de la función "multiply"
Cualquier variable que se declare dentro de la función, no estará disponible fuera de ella.
1function multiply(a, b) { 2 3 let myVariable = 'hello'; 4 5 return a * b; 6} 7 8console.log(myVariable); 9// este console.log no funcionará, generará un error, porque myVariable está declarada dentro de la función "multiply", por lo tanto no está disponible fuera. 10
☝️ Es muy importante recordar que una vez que use la instrucción
return
, la función dejará de ejecutarse, si hay algún código después de esa instrucción, nunca se ejecutará.
Puedes declarar funciones sin nombres, pero solo si las almacenas en variables, de esta manera:
1const multiply = function(a, b) { 2 return a * b; 3}
La única forma de llamar a una función es poner paréntesis () después de nombrar la función:
1//Así es como se llama a una función sin parámetros. 2multiply(); 3 4//Así es como llamas a una función con parámetros. 5multiply(<primer parámetro>,<segundo parámetro>); 6 7//por ejemplo, para multiplicar 3 por 9 8multiply(3,9);
Recuerda asignarle a la función los parámetros que debe recibir. En nuestro ejemplo, la función de multiplicación fue declarada pidiendo que se multipliquen dos números. Juega con el siguiente ejemplo como quieras:
Loading...
Puedes combinar funciones como quieras y tener llamadas encadenadas como esta:
Loading...
☝️ Puedes hacer click en "ejecutar" en el código de arriba para ver su salida.
El siguiente código tiene 3 funciones declaradas:
function getAverage(array: ages){ ... }
function getYoungest(array: ages){ ... }
function getPersonInfo(string: name){ ... }
Como puedes ver, los nombres de las funciones son bastante específicos sobre lo que hacen las funciones, así como los parámetros asignados a ellas.
Aqui podemos ver el ejemplo más en detalle:
Loading...
Otras cosas importantes a tener en cuenta:
getPersonInfo
dos veces, sin usar funciones tendríamos que usar más código porque no tendríamos ninguna opción para reutilizar la función.getAverage
obtiene el valor promedio en un array dado ¡No sabe nada más y eso es genial! Al separar su código en pequeñas funciones, puede concentrarse en una cosa a la vez.