Documentos de Académico
Documentos de Profesional
Documentos de Cultura
7 Funciones
---
```js
function suma(a, b) {
return a+b;
}
```
* No es obligatorio que las funciones tengan una instrucción de tipo `return` para
devolver valores.
* Cuando una función no devuelve ningún valor o cuando en la instrucción
`return`sin ningún valor, devuelve `undefined`.
Para **llamar** a una función se indica su nombre junto con la lista de parámetros
esperados
```js
var resultado1 = suma(2, 3); //5
var resultado2 = suma(4+3-5, 13%5); //5
```
```js
/*
*/
function sumaCuadrados(a, b)
{
function cuadrado(x)
{ return x*x;
}
```js
// función anónima
var miFuncion = function(a, b) { return a+b; }
```
Cuando una función recibe menos parámetros, a los parámetros faltantes se les
asigna el valor `undefined`.
```js
function suma(a, b)
{
if(isNaN(b))
{
b = 0;
}
return a + b;
}
resultado = suma(2,"hola"); // Res: 2
resultado = suma(2); // Res: 2
```
La función del ejemplo anterior comprueba que `b` sea un número para poder realizar
correctamente la suma. En caso de que no lo sea (es decir, que sea `null`,
`undefined` o cualquier valor válido distinto de un número) se le asigna el valor
`0` para que la función pueda devolver un resultado válido.
```js
function suma(a, b) {
b = b || 0;
return a + b;
resultado = suma(2,"hola"); // Res: 2hola
resultado = suma(2); // Res: 2
}
```
```js
alert(true || false); // true
alert(3 || false); // 3
alert(true || 5); // true
alert(false || true); // true
alert(false || 5); // 5
alert(3 || 5); // 3
```
```js
// en todos los casos la variable b vale 0
suma(3); // b->indefinida -> false, entonces b||0 es cero
suma(3, null); // b-> null -> false, mismo caso b||0 es cero
suma(3, false); // b-> false, mismo caso b||0 es cero
```
El objeto array `arguments` contiene todos los parámetros con los que se ha
invocado a la función, y solamente está definido dentro de la función.
```js
function suma(a, b)
{
alert(arguments.length); // 2
alert(arguments[0]); // 3
alert(arguments[1]); // 5
alert(arguments[2]); // undefinided
return a + b;
}
suma(3, 5);
```
```js
function mayor()
{
alert(arguments.callee); // muestra el código fuente de la función que se está
ejecutando
var elMayor = arguments[0];
for(var i=1; i<arguments.length; i++)
{
if(arguments[i] > elMayor)
{
elMayor = arguments[i];
}
}
alert(elMayor);
```js
function suma(a, b) {
alert(arguments.callee.length); // 2
alert(arguments.length); // 4
return a + b;
}
suma(3, 5, 7, 9);
```