Existen dos maneras de definir a una funcion en JavaScript
function suma(a, b) {
return a + b;
}
var duplicar = function(a) {
return 2*a;
}
Los argumentos (o parámetros) de una función pueden ser de cualquier tipo de dato.
function duplicar(a) {
switch(typeof a)
{
case "string":
return (a.length)*2;
break;
case "number":
return a*2;
break;
case "function":
return 2*a();
break;
}
}
Las funciones recursivas son aquellas que tienen la capacidad de llamarse a si mismas.
function factorial(a) {
if (a < 0)
return undefined;
if (a == 0)
return 1;
else
return a*factorial(a-1)
}