Categorías: Tutoriales

Parámetros opcionales en funciones de JavaScript

El desarrollo web siempre tiene dos interacciones: la que se produce en el lado del servidor y la que se produce en el lado del cliente. Esta segunda cada vez tiene más relevancia para conseguir una mejor experiencia del usuario y JavaScript es el responsable de ésto.

JavaScript es una de esas tecnologías que se pensó para abordar pequeños problemas, pero que por cuestiones de compatibilidad y aceleración tecnológica, se ha convertido en una tecnología versátil a la vez que necesaria para poder afrontar las exigencias de la actualidad.

En lenguajes como PHP, podemos hacer uso de parámetros opcionales (aquí explicaba su uso al hablar de cómo podíamos imitar la sobrecarga de funciones en el curso de PHP orientado a objetos), por ejemplo:

function crearPersona($nombre = "")

Y sus respectivas llamadas:

crearPersona("Javier");
crearPersona();

Sin embargo, en JavaScript no tenemos esta posibilidad, aunque al igual que ocurría con la sobrecarga de funciones en PHP, podemos imitarlo. Veamos cómo.

Usando un condicional con undefined

Empezamos por la forma larga, que es la que menos me gusta:

function crearPersona(nombre)
{
  if(nombre == undefined)
  {
    // si no se especifica nombre
    nombre = "Javier";
  }
  else
  {
     // si se especifica
  }
}

Comprobando y asignando en una sola línea

Este método “largo” se puede reducir muchísimo, ganando en legibilidad y comodidad. ¿Cómo? La idea es “si la variable no es definida, toma el valor por defecto, si no, toma el que traes de la llamada”. Podemos reducir esta sentencia a la siguiente línea de código:

function crearPersona(nombre)
{
  var nombre = nombre || "Javier";
}

Varios parámetros

Al igual que ocurre en otros lenguajes, al haber varios parámetros, los parámetros opcionales tienen que estar siempre al final y habrá que tener cuidado en la forma en que los llamamos. Es decir, si tenemos cuatro parámetros y tres son opcionales, tendrán que ser los últimos y nos limitaremos a obviar los parámetros del final. Si no respetáramos esta regla, el intérprete en este caso y el compilador en otras, no sabría qué parámetros hemos quitado y cuáles hemos dejado.

Para evitar este problema y darle mayor claridad a todo este asunto, podemos usar jQuery y su función extend. ¿Cómo?

// aquí rellenamos los valores para nuestra llamada
var params = {
    nombre: "Francisco Javier",
    apellidos: "Carazo Gil",
    web: "reddeautores.com"
};
crearPersona(params);

function crearPersona(params) {
    // valores por defecto
    var porDefecto = {
        nombre: "Nacho",
        apellidos: "López",
        web: "linuxhispano.net",
        edad: 26 // por defecto
    }
    $.extend(porDefecto, params);
}

De esta forma conseguimos:

  • Poder usar el orden que queramos al llamar a los parámetros
  • Usar tantos parámetros opcionales como necesitemos
  • Clarificar la llegada de parámetros a las funciones
F. Javier Carazo Gil

Cofundador de CODECTION, empresa especializada en WordPress, autor de un libro sobre WordPress (el primero en español) y multitud de artículos (en medios físicos y virtuales) sobre el tema. Participa en la comunidad WordPress de forma activa siendo parte del equipo organizador de la WordPress Meetup de Córdoba, dando charlas en diferentes WordCamp y siendo autor y coautor de multitud de plugins libres y premium para WordPress de gran éxito.

Ver comentarios

  • El estilo jQuery es el que mas recomiendo aunque si no tienes o puedes usar jQuery siempre tienes acceso dentro de la funcion a la propiedad "arguments" que es un arreglo con todos los parametros que te hayan pasado.

  • Buena explicación me aclaro mucho el tema. Gracias. Use la opción con extend. Lo único que me tiro error fue la falta de ";" después de definir var porDefecto.

Entradas recientes

DeepSeek

2 días hace

Contacto

2 semanas hace

Smart-tv mute

2 semanas hace

STEAM OS

3 semanas hace

2025

4 semanas hace

El podcast de Linux Hispano – #072 – El hardware libre debe consolidarse como el software libre

https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.

1 mes hace