Funciones

function sum(a, b) {
  var c = a + b;
  return c;
}

Las funciones nos permiten agrupar varias líneas de código bajo un nombre. De esta forma podemos reutilizar este código, invocando el nombre de la función.

Las partes de una función:

  • La sentencia function
  • El nombre de la función (sum)
  • Parámetros (argumentos) que espera la función (a y b) Una función puede aceptar cero o más argumentos separados por comas
  • Un bloque de código, también llamado el cuerpo de la funcion
  • La sentencia return
    Una función siempre devuelve un valor.
    Si no devuelve explícitamente un valor, implícitamente devuelve el valor undefined

Una función solo puede devolver un valor.
Si se necesita devolver mas de un valor, se puede devolver un array o un objeto con esos valores

Para llamar a una función tan solo tenemos que usar su nombre seguido de algunos parámetros (o ninguno) entre paréntesis

>>> var result = sum(1, 2);
>>> result;
3

Parametros

Una función puede no requerir parámetros, pero si los requiere y no se les pasa a la función, Javascript les asignará el valor undefined

Si la función recibe mas parámetros de los esperados, simplemente los ignorará

Dentro de cada función tenemos disponible el objeto (pseudo-array) arguments que contiene los argumentos pasados a la función

function sumOnSteroids() {
  var i, res = 0;
  var number_of_params = arguments.length;
  for (i = 0; i < number_of_params; i++) {
    res += arguments[i];
  }
  return res;
}

Funciones pre-definidas

Hay una serie de funciones que están directamente definidas dentro del motor de Javascript. Estas funciones pre-definidas son:

  • parseInt()
  • parseFloat()
  • isNaN()
  • isFinite()
  • encodeURI()
  • decodeURI()
  • encodeURIComponent()
  • decodeURIComponent()
  • eval()

parseInt()

parseInt() toma un valor e intenta transformarlo en número entero. Si falla devuelve NaN.
parseInt() admite un segundo parámetro opcional que indica la base del numero que se le está pasando (decimal, hexadecimal, binario, etc…)

>>> parseInt('123')
123
>>> parseInt('abc123')
NaN
>>> parseInt('1abc23')
1
>>> parseInt('123abc')
123

Se recomienda especificar siempre la base (10 normalmente) para evitar problemas de interpretaciones

>>> parseInt(" 0xF", 16);
15
>>> parseInt(" F", 16);
15
>>> parseInt("17", 8);
15
>>> parseInt(021, 8);
15
>>> parseInt("015", 10);
15
>>> parseInt(15.99, 10);
15
>>> parseInt("FXX123", 16);
15
>>> parseInt("1111", 2);
15
>>> parseInt("15*3", 10);
15
>>> parseInt("15e2", 10);
15
>>> parseInt("15px", 10);
15
>>> parseInt("12", 13);
15

parseFloat()

parseFloat() toma un valor e intenta transformarlo en número de coma flotante (con decimales).

>>> parseFloat('123')
123
>>> parseFloat('1.23')
1.23
>>> parseFloat('1.23abc.00')
1.23
>>> parseFloat('a.bc1.23')
NaN

isNan()

isNan() comprueba si el valor que se le pasa es un numero válido (devuelve true en caso de que no lo sea)

>>> isNaN(NaN)
true
>>> isNaN(123)
false
>>> isNaN(1.23)
false
>>> isNaN(parseInt('abc123'))
true

isFinite()

isFinite() comprueba si el valor que se le pasa no es ni Infinity ni NaN

>>> isFinite(Infinity)
false
>>> isFinite(-Infinity)
false
>>> isFinite(12)
true
>>> isFinite(1e308)
true
>>> isFinite(1e309)
false

encodeURI()

encodeURI() Nos permite ‘escapar’ (codificar) una URL reemplazando algunos caracteres por su correspondiente secuencia de escape UTF-8. encodeURI() nos devuelve una URL usable (solo codifica algunos caracteres)

>>> var url = 'http://www.packtpub.com/scr ipt.php?q=this and that';
>>> encodeURI(url);
http://www.packtpub.com/scr%20ipt.php?q=this%20and%20that

decodeURI()

decodeURI() Nos permite ‘decodificar’ un string codificado por encodeURI()

encodeURIComponent() y decodeURIComponent()

encodeURIComponent() y decodeURIComponent() Lo mismo que encodeURI()` pero esta función codifica (decodifica) TODOS los caracteres transformables

>>> encodeURIComponent(url);
"http%3A%2F%2Fwww.packtpub.com%2Fscr%20ipt.php%3Fq%3Dthis%20and%20that"

eval()

eval() toma una cadena de texto y la ejecuta como código Javascript

eval() no debe utilizarse básicamente por 2 motivos:

  • Rendimiento: Es mucho más lento evaluar código “en vivo” que tenerlo directamente en el script
  • Seguridad: Teniendo en cuenta que ejecuta todo lo que se le pase puede ser un agujero de seguridad.
>>> eval('var ii = 2;')
>>> ii
2

alert()

alert() Nos muestra una ventana con un string
alert() no es parte del core JS pero está disponible en todos los navegadores

¡OJO! alert() para el código hasta que se acepte el mensaje

results matching ""

    No results matching ""