<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Quenerapú &#187; variables</title>
	<atom:link href="http://quenerapu.com/etiquetas/variables/feed/" rel="self" type="application/rss+xml" />
	<link>http://quenerapu.com</link>
	<description>Sentado delante de un ordenador desde 1982. ¿De qué voy a hablar, si no?</description>
	<lastBuildDate>Thu, 19 Jan 2012 13:02:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Argumentos por defecto en funciones javaScript</title>
		<link>http://quenerapu.com/javascript/argumentos-por-defecto-en-funciones-javascript/</link>
		<comments>http://quenerapu.com/javascript/argumentos-por-defecto-en-funciones-javascript/#comments</comments>
		<pubDate>Wed, 25 Feb 2009 02:15:13 +0000</pubDate>
		<dc:creator>Quenerapú</dc:creator>
				<category><![CDATA[javaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[función]]></category>
		<category><![CDATA[variables]]></category>

		<guid isPermaLink="false">http://quenerapu.local/?p=32</guid>
		<description><![CDATA[En PHP es sencillo declarar parámetros por defecto en las funciones. En javaScript también se puede, aunque de un modo menos directo]]></description>
			<content:encoded><![CDATA[<p>En PHP es posible (y sencillo) declarar parámetros por defecto en las funciones.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
function qq($a,$b=2)
	{
	return $a+$b;
	}

echo qq(3);		// Devuelve 5
echo qq(3,3);	// Devuelve 6
?&gt;
</pre>
<p>Vemos que si no asignamos un valor a <strong>$b</strong>, la función tiene reservado para <strong>$b</strong> un valor por defecto.</p>
<p>Lamentablemente en javaScript no es posible declarar un argumento por defecto en una función de un modo tan directo. El siguiente ejemplo **<strong>no funciona</strong>**:</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
function qq(a,b=2)	// Esto no va a funcionar
	{
    return a+b;
	}
&lt;/script&gt;
</pre>
<p>¿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:</p>
<pre class="brush: jscript; title: ; notranslate">
&lt;script type=&quot;text/javascript&quot;&gt;
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
&lt;/script&gt;
</pre>
<p>¿Fácil, no?</p>
<p><strong>Actualización</strong><br />
Como muy bien apunta Jonathan en el primer comentario, la función no devuelve el valor correcto si usamos por ejemplo <strong>qq(3,3)</strong>. La razón es <strong>!b</strong> 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:</p>
<pre class="brush: jscript; first-line: 4; title: ; notranslate">
	if(b==null){var b=2;} // Si no hay b, b=2
</pre>
]]></content:encoded>
			<wfw:commentRss>http://quenerapu.com/javascript/argumentos-por-defecto-en-funciones-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

