1.16 Funciones/Functions
La empleada de la tienda de teléfonos a lo mejor no lleva consigo una calculadora para averiguar los impuestos y el monto de la compra final. Eso es una tarea que ella necesita definir una vez y re-usar una y otra vez. Posiblemente, la compañía tenga una caja registradora(computadora, tablet, etc) con esta "función" pre-construida.
Igualmente, su programa seguramente querrá convertir las tareas de su programa en piezas re-utilizables, en lugar de repetidamente repetir repeticiones(no puede expresarse mejor). La manera de hacer esto es definiendo una función.
Una función por lo general es una sección de código con nombre que puede ser "llamado" por su nombre, y el código dentro de esta sección sera ejecutado cada vez.
function printAmount() {
console.log( amount.toFixed( 2 ) );
}
var amount = 99.99;
printAmount(); // "99.99"
amount = amount * 2;
printAmount(); // "199.98"
Las funciones opcionalmente pueden tomar argumentos (o parámetros) -- valores que se le pasan --. Y ellos pueden también opcionalmente retornar un valor de vuelta.
function printAmount(amt) {
console.log( amt.toFixed( 2 ) );
}
function formatAmount() {
return "$" + amount.toFixed( 2 );
}
var amount = 99.99;
printAmount( amount * 2 ); // "199.98"
amount = formatAmount();
console.log( amount ); // "$99.99"
La función printAmout(..)
toma un parámetro que llamamos amt
. La función formatAmount()
retorna un valor. Por supuesto, usted también puede combinar estas dos técnicas en la misma función.
Los funciones a menudo son usadas para código que usted planea llamara/utilizar muchas veces, pero también pueden se útiles para organizar bits de código relacionados, incluso si solo planea llamarla una vez.
Considere:
const TAX_RATE = 0.08;
function calculateFinalPurchaseAmount(amt) {
// Calcular el nuevo valor con los impuestos
amt = amt + (amt * TAX_RATE);
// retorna el nuevo valor
return amt;
}
var amount = 99.99;
amount = calculateFinalPurchaseAmount( amount );
console.log( amount.toFixed( 2 ) ); // "107.99"
Aunque calculateFinalPurchaseAmount()
es llamada una sola vez, organizar su comportamiento en la función nombrada separada hace el código que usa su lógica sea clara. Si la función tiene mas sentencias en ella, los beneficios deberían ser incluso mas pronunciados.