Argumentos por defecto en funciones javaScript
En PHP es posible (y sencillo) declarar parámetros por defecto en las funciones.
<?php
function qq($a,$b=2)
{
return $a+$b;
}
echo qq(3); // Devuelve 5
echo qq(3,3); // Devuelve 6
?>
Vemos que si no asignamos un valor a $b, la función tiene reservado para $b un valor por defecto.
Lamentablemente en javaScript no es posible declarar un argumento por defecto en una función de un modo tan directo. El siguiente ejemplo **no funciona**:
<script type="text/javascript">
function qq(a,b=2) // Esto no va a funcionar
{
return a+b;
}
</script>
¿Cómo podemos conseguirlo? Pues con un poco de ingenio es posible expresar la idea de «argumento por defecto en funciones javaScript» de la siguiente manera:
<script type="text/javascript">
function qq(a,b)
{
if(!b){var b=2;} // Si no hay b, b=2
return a+b;
}
document.write(qq(3)); // Devuelve 5
document.write(qq(3,3)); // Devuelve 6
</script>
¿Fácil, no?
Actualización
Como muy bien apunta Jonathan en el primer comentario, la función no devuelve el valor correcto si usamos por ejemplo qq(3,3). La razón es !b sólo comprueba si b es true o false, y entiende que el valor cero es false. Para subsanarlo, retocamos la línea 4 de la función de este modo:
if(b==null){var b=2;} // Si no hay b, b=2
Acerca de esta entrada
Estás leyendo “Argumentos por defecto en funciones javaScript”, de Quenerapú
- Publicado:
- 25|02|2009 a las 04:15h.
- Categoría(s):
- javaScript, PHP
- Libros en Amazon.es:
- Sobre informática
| Sobre PHP
| Sobre CSS
| Sobre javaScript

2 comentarios
Añadir comentario | comments rss [?] | trackback uri [?]