JavaScript de Cero a Experto / Funciones
Parámetros, argumentos y valores por defecto
Una función se vuelve verdaderamente útil cuando trabaja con DATOS distintos cada vez que la llamas. Eso se logra con los parámetros. Hoy los dominas: la diferencia entre parámetro y argumento, cómo pasar varios, y cómo dar valores por defecto para cuando falta un dato. El arte de hacer funciones flexibles.
El formulario con espacios en blanco
Parámetros son los nombres al DEFINIR la función (nombre, valor,
categoria); argumentos son los valores concretos que pasas al LLAMARLA
("Almuerzo", 18000). Y cuidado con el orden: los argumentos se
asignan por POSICIÓN — el primero va al primer parámetro, y así. Invertirlos
mete el valor en el espacio equivocado (la última línea del ejemplo).
¿Y si falta un argumento?
Si llamas una función con menos argumentos de los que espera, los que faltan
quedan undefined:
Un valor por defecto (saludo = "Hola") se usa SOLO cuando ese
argumento falta (o es undefined). Es como tener un espacio del formulario
pre-rellenado: si no escribes nada, queda el valor previsto; si escribes,
gana lo tuyo. Perfecto para parámetros "opcionales" (un descuento que por
defecto es 0, un saludo estándar, etc.).
Buenas prácticas de diseño
Defines function precioFinal(precio, descuento = 0) y la llamas con precioFinal(10000). ¿Qué vale 'descuento' dentro de la función?
Mini-reto
En "Mi Bolsillo": escribe function aplicarDescuento(precio, porcentaje = 10) que DEVUELVA el precio con ese descuento aplicado. Llámala una vez con
un porcentaje explícito (aplicarDescuento(50000, 20)) y otra sin él
(aplicarDescuento(50000), que debe usar el 10% por defecto). Muestra ambos
resultados. Sentir cómo el default cubre el caso "no me dieron el dato" es
clave para funciones robustas.
Qué sigue
Ya diseñas funciones con parámetros. Existe una forma más corta y moderna de
escribirlas —las ARROW FUNCTIONS (=>)— que verás en todas partes,
especialmente al trabajar con listas y en React. La próxima lección las
presenta, junto a la diferencia entre declarar una función y guardarla en una
variable.