Blog de programaci贸n, errores, soluciones

javascript / functions – Funciones en Javascript

Una funci贸n es un subprograma o rutina el cual cumple con una tarea en especifico capaz de ser llamada y tambi茅n reutilzada. En javascript las funciones son objetos y pueden ser tratadas como tal, es decir objeto function.

En este post veremos desde c贸mo declarar  la funci贸n con nombre hasta como crear funciones de distinto tipo como pueden ser funciones con m煤ltiples argumentos,funciones de expresi贸n y funciones IIFE.

Funci贸n b谩sica en javascript

Para declarar una funci贸n tenemos que hacer uso de la palabra clave function veamos un ejemplo:

function a(){
   alert("estoy dentro de a");
   return "devuelvo este texto que esta dentro de a";
}

La palabra clave return la usamos para que la funci贸n nos devuelva algo en este caso devolver谩 el string «devuelvo este texto que esta dentro de a»

Tome en cuenta que la funci贸n en si son estas l铆neas:

function a(){

}

Lo dem谩s son sentencias que se encuentran dentro de esta funci贸n, en consecuencia podemos decir que una funci贸n es un conjunto de sentencias que juntas realizan una tarea.

Para llamar a la funci贸n la llamaremos de la siguiente manera a(), haremos un peque帽o ejemplo:

<html>
   <head>
      <title> funciones en javascript </title>
   <head>
   <body>
   <button onclick="b()">click me</button>
   <script type="text/javascript">
      function a(){
         return "devuelvo este texto que est谩 dentro de a";
      }
      function b(){
         alert(a());
      }
   </script>
   </body>
</html>

Ejemplo aqui.

Creando una funci贸n con m煤ltiples argumentos.

Para crear una funci贸n a la cual le pasamos m煤ltiples argumentos en esta tenemos que usar arguments.length por ejemplo si queremos sumar todos los argumentos.

function Suma(arguments[]) {
      var temporalVar = 0;
      for (var i = 1; i < arguments.length; i++) {
         temporalVar+= arguments[i];
      }
      return temporalVar;
}

Funciones an贸nimas y funciones expresi贸n .

Si una funci贸n es colocada donde se espera una expresi贸n esta es tratada como una expresi贸n. Por lo que los valores que est谩n antes de la funci贸n pueden tener incidencia en el valor que nos dar谩 la funci贸n.

Funciones an贸nimas

Las funciones an贸nimas no tienen un nombre con las cuales llamarlas por lo general se las guarda en una variable.

Puede correr el siguiente ejemplo aqu铆. En este ejemplo le pasamos los valores 1 y2 atravez de los parametros b y c.

<script type ="text/javascript">
      var suma;
      // esta es  una funci贸n de expresi贸n y an贸nima(en a se espera una expresi贸n la cual nos dar谩 un valor)
      var a = function(b,c){
         return( b + c );
      }
      suma = a(1,2);//nos devolvera 3
      alert(suma);
</script">

funciones expresi贸n

Intentemos algo diferente esta vez no vamos a pasarle los valores por parametros para demostrar que la funcion es tratada como una expresi贸n.

<script type ="text/javascript">
      var b = 4;
      var c = 4;
      var sum;
      var a = function(){
         return( b + c );
      }
      sum = a();//nos devolvera 8?
      alert(suma);
</script">

Puede probar el ejemplo aqu铆.

Funciones IIFE(inmediate invoke function expresion).

Esta es la 煤ltima que veremos el post funciones en javascript, tiene la particularidad de que se ejecuta inmediatamente llegado a esa sentencia y se define de la siguiente manera.

<script type ="text/javascript">
      var stringA = "luis";
      /*
      esta es  una funci贸n de expresi贸n y an贸nima
      (en a se espera una expresi贸n la cual nos dar谩 un valor)
      */
      var a = (function(){
         alert("hola" + stringA );
      }());
</script">

Vea c贸mo funciona aqu铆.

C贸mo puede ver en este c贸digo hemos marcado de 2 colores diferentes a los par茅ntesis () que intervienen en la funci贸n, primero en verde est谩n los par茅ntesis que se aseguran que esta funci贸n se utilizar谩 como una expresi贸n y en segundo lugar azul los que se aseguran que la funci贸n sea ejecutada inmediatamente.

Ayudame: Por favor deja un comentario antes de irte, tu opini贸n es bienvenida. Si te gusta el contenido comparte.