Skip to content

Función

Es un módulo que agrupa un conjunto de sentencias que tienen un fin especifico, por medio de una firma, define sus datos de entrada y datos de salida y posteriormente con esta información podemos determinar como realizar su invocación.

En resumen, es un módulo que resuelve una necesidad puntual que se puede reutilizar.

![La función sen, toma un dato de entrada y devuelve un dato de salida, correspondiente a la operación.](/images/fullstack/imagen (38).png)

Para crear una función debemos usar la plantilla o firma de la función según la sintaxis de Javascript como se muestra a continuación:

![Firma y partes de una función](/images/fullstack/imagen (37).png)

  • function Palabra reservada que permite crear el módulo que se comportará como una función
  • nombre_funcion Nombre inventado por el desarrollador, para identificar la función
  • lista,de,parametros Valores de entrada de la función, pueden ser cero o más datos, si son varios se deben separar por coma
  • cuerpo de la función Espacio donde se escriben las sentencias de la función
  • return Palabra reservada que indica que la función retorna, ya sea un valor o se sale de la función
  • puede_ser_opcional Valor de salida de la función, es opcional, una función no siempre debe retornar un valor

Recibe datos de entrada, pero no genera datos de salida

Firma de la función

function sumar(a,b){
console.log("La suma es ",a+b);
}

Invocación

let a = 5;
let b = 3;
sumar(a,b);

Salida

La suma es 8

Recibe datos de entrada y genera datos de salida

Firma de la función

//Ejemplo 1
function sumar(a,b){
let c = a + b;
return c;
}
//Ejemplo 2
function restar(a,b){
return a-b;
}

Invocación

let a = 5;
let b = 3;
let c;
c = sumar(a,b);
console.log("La suma es ",c);
console.log("La resta es",restar(a,b));

Salida

La suma es 8 La resta es 2

No recibe datos de entrada y no genera datos de salida

Firma de la función

function sumar(){
let a = prompt("Ingrese el valor de a");
let b = prompt("Ingrese el valor de b");
let temp;
a = Number(a);
b = Number(b);
try
{
temp = a + b;
if(isNaN(temp) || !isFinite(temp))
{
throw new Error('Operación incorrecta');
}
else{
console.log("La suma es ",temp);
}
}
catch(error){
console.error(error);
}
}

Invocación

sumar();

Salida: La función no tiene retorno y por tanto no tiene salida, simplemente es una impresión en consola

La suma es 8

Si los datos leídos no son números o son valores incorrectos, el resultado de invocar la función es un error Operación incorrecta

Sin datos de entrada, y con datos de salida

Firma de la función

function aleatorio(){
return parseInt(Math.round(Math.random()*100));
}

Invocación

const turno = aleatorio();
console.log("Su turno es ",turno);

Salida

Su turno es 18

Hay diferentes formas de crear funciones, hay formas equivalentes de definir una función en el código, depende del uso que se le vaya a dar a la función.

Se utiliza, para pasar una función como parámetro por ejemplo a otra función, también como callback de eventos, esto se estudiará proximamente.

const aleatorio = function(){
return parseInt(Math.round(Math.random()*100));
}
//Invocación
let turno = aleatorio();
//Salida
console.log("Su turno es ",turno);

Es otra forma equivalente de escribir una función, similar a la sintaxis de otros lenguajes de programación como php, es una alternativa compacta.

const suma = (a,b)=>{
return a+b;
}
//Invocación
let salida = suma(5,3);
//Salida
console.log("La suma es ",salida);

Otra forma de escribir lo mismo:

const suma = (a,b) => a+b;

El return esta implicito, no hace falta poner las llaves en el caso del ejemplo

Son funciones que no tienen nombre, por lo general se usan como callbacks, para inicializar variables.

function (){
console.log("Soy una función anónima");
}

La función sin nombre, si se declará luego no es posible invocarse ya que no tienen nombre, para evitar este error, se puede asignar a una variable o enviarse como parametro de otra función, y luego esta puede ser invocada por la función que la recibe.

function llamarFuncion(funcion){
funcion();
}
//Invocación
llamarFuncion(function(){
console.log("Llamando la función");
});
//Salida
//Llamando la función

Funciones anónimas autollamadas y encapsuladas

Section titled “Funciones anónimas autollamadas y encapsuladas”

Es posible encapsular toda la lógica de una aplicación adentro de una función anónima, que se autollame, esto evita que las funciones y el código en general, sea usado desde la consola del navegador.

(function(){
let info = "";
info = "El codigo que esta internamente\n";
info += "en esta funcion, no puede\n";
info += "ser consultado desde la consola\n";
info += "del navegador.\n";
console.log(info);
})();
  1. Realice la función factorial, tenga presente los casos especiales y el desbordamiento.
  2. Cree una función, que calcule los valores de la función Math.sin y Math.cos entre 0 y Math.PI, almacene los datos en una matriz y retorne el resultado.
  3. Cree una función que se llame tangente, que reciba la matriz del punto anterior, y calcule la tangente usando los valores de la matriz, si la tangente no existe, se debe imprimir el mensaje error, no existe caso contrario se imprime el valor.
  4. Cree una función que calcule valores aleatorios enteros entre min y max.
  5. Realice el curso de javascript funcional de nodeschool.