Contenido del curso

¿Qué se implementó en ES6?

Parámetros por defecto en funciones ES6

Resumen

Si alguna vez tuviste que escribir validaciones repetitivas dentro de tus funciones para evitar que un argumento llegara como undefined, los parámetros por defecto en JavaScript te van a cambiar la forma de programar. Con ECMAScript 6 puedes asignar valores predeterminados directamente en la firma de la función, sin trucos con el operador or. Esta guía está pensada para quienes ya conocen funciones básicas y quieren escribir código más limpio.

¿Cómo se asignaban valores por defecto antes de ECMAScript 6?

Antes de esta actualización, la práctica común era declarar variables internas dentro de la función y usar el operador lógico || para definir un valor de respaldo cuando el argumento no llegaba.

Imagina una función newUser que recibe name, age y country. Para garantizar que cada parámetro tuviera un valor aunque no lo pasaras al invocar la función, escribías algo así:

javascript function newUser(name, age, country) { var name = name || 'Óscar'; var age = age || 34; var country = country || 'MX'; console.log(name, age, country); }

newUser(); newUser('David', 15, 'CO');

Al ejecutar newUser() sin argumentos, la consola devolvía Óscar, 34, MX. Y al pasar David, 15 y CO, mostraba esos nuevos valores. Funcionaba, pero la sintaxis era verbosa y obligaba a duplicar declaraciones.

¿Para qué sirve el operador || al asignar valores? Funciona como un fallback: si el primer valor es falsy (undefined, null, 0, ""), JavaScript toma el segundo. Por eso se usaba para simular defaults antes de ES6.

¿Cómo funcionan los default params en ECMAScript 6?

La nueva sintaxis te permite asignar el valor por defecto directamente en la lista de parámetros, usando el signo = después del nombre de cada argumento. Esto elimina la necesidad de validar dentro del cuerpo de la función [2:30].

El mismo ejemplo, ahora con una función newAdmin, se ve así:

javascript function newAdmin(name = 'Óscar', age = 34, country = 'CL') { console.log(name, age, country); }

newAdmin(); newAdmin('Ana', 28, 'PE');

Al ejecutar newAdmin() sin argumentos, la consola devuelve Óscar, 34, CL. Y al pasar Ana, 28 y PE, imprime esos valores. La lógica es la misma, pero la lectura del código mejora muchísimo.

¿Qué ventajas tiene esta sintaxis frente al método anterior?

La diferencia no es solo estética. Al declarar los defaults en la firma, comunicas la intención del código a primera vista y reduces líneas dentro del cuerpo de la función.

  • Sintaxis más amigable y declarativa, sin validaciones manuales.
  • Menos líneas de código y menor probabilidad de errores al duplicar nombres de variables.
  • Lectura inmediata: cualquier persona que abra tu archivo entiende qué valor toma cada parámetro si no se pasa.
  • Compatibilidad nativa con el estándar moderno de JavaScript.

¿Cuándo se aplica un parámetro por defecto? Solo cuando el argumento llega como undefined o no se pasa. Si envías null, 0 o un string vacío, esos valores sí se respetan, a diferencia del truco con ||.

¿Cómo combinar default params con argumentos personalizados?

La función sigue aceptando argumentos como siempre. Puedes invocarla sin parámetros y recibirás los defaults, o pasar algunos para sobrescribirlos.

En el ejemplo de la clase, la primera ejecución newAdmin() muestra los valores predeterminados Óscar, 34 y CL. La segunda llamada newAdmin('Ana', 28, 'PE') reemplaza los tres y muestra los nuevos. Esto te da flexibilidad sin escribir código adicional.

¿Por qué es útil al construir aplicaciones reales?

Cuando creas funciones que arman objetos, configuran clientes, inicializan estados o reciben datos desde formularios, es común que algunos campos sean opcionales. Los default params te permiten cubrir esos casos sin escribir validaciones repetidas en cada función.

Piénsalo así: si construyes un usuario y no conoces el país, puedes establecer un valor base como MX o CL y dejar que tu lógica siga corriendo sin romper nada. Esa es la ventaja real al integrarlo en proyectos.

Un detalle a tener en cuenta al practicar: cuando ejecutas el archivo, asegúrate de seleccionar solo las líneas que quieres correr. En la clase se ejecutan las líneas 11 a 16 para ver el resultado de newAdmin sin interferencia del código anterior.

Si vienes de escribir validaciones con || en cada función, la transición a esta sintaxis te va a ahorrar tiempo y volver tu código más legible. ¿Ya estás aplicando default params en tus proyectos? Cuéntame en los comentarios qué función refactorizarías primero.