cabecera javascript para novatos

Funciones Predefinidas o Globales | JavaScript para novatos #13º

Funciones predefinidas

Recordemos que una función era un conjunto de instrucciones que agrupábamos para desarrollar una tarea específica y que podíamos reutilizar fácilmente.

Aparte de las funciones que nosotros podemos crear, Javascript posee un conjunto de funciones ya definidas que podemos utilizar con cualquier variable, valor u objeto (Más adelante conoceremos los objetos). Estas funciones se denominan predefinidas o globales.

Función Number ()

Esta función nos permite convertir diferentes valores a números. Si la conversión no es posible devolverá el valor NaN (Not a Number).

Sintaxis funcion number
13.1 sintaxis-funcion-number

Veamos un ejemplo:

var miEdad = "27";

document.write (Number(miEdad) + 3);

En la variable «miEdad» hemos guardado la cadena de texto «27».

A la hora de mostrar esa variable en un alert hemos convertido su valor a un número, utilizando la función «Number» y pasándole como argumento la variable que queremos convertir «miEdad».

Como prueba de que el valor se ha convertido en número se ha podido sumar el número 3.

Función String ()

Esta función nos permite convertir cualquier valor en una cadena de texto (string).

Su sintaxis es igual a la de «Number».

document.write (String(2016) + " " + String(true));

En este caso hemos convertido un número y el valor booleano «true» a texto y los hemos concatenado.

Función parseInt ()

Permite convertir una cadena de texto en un número entero (integer).

Funciona bajo las siguientes reglas:

Solo convierte caracteres válidos, si encuentra uno no válido o un espacio, se detiene y solo convierte los caracteres desde el comienzo hasta ese punto.

Si el primer carácter a convertir no es válido devolverá NaN.

No tiene en cuenta los espacios al comienzo de la cadena.

La mejor manera de verlo es con un ejemplo.

document.write (parseInt("2.5") + "<br/>");   
document.write (parseInt("123 45") + "<br/>");
document.write (parseInt("a89"));

Esta función acepta un segundo argumento que nos permite indicar la base de numeración en la que está el valor que se va a convertir.

Binario (2), octal (8), hexadecimal (16) . .

Si no se especifica ningún parámetro se tomará como decimal. Una vez hecha la conversión el valor estará en base 10.

document.write (parseInt("11001", 2));

En el ejemplo de arriba tomará la cadena de texto «11001» como un número binario y lo convertirá en un número decimal.

Nota:

El separador decimal en Javascript es el punto en vez de la coma.

Función parseFloat ()

Nos permite convertir una cadena en un número real (float) atendiendo a las mismas reglas que «parseInt», la única diferencia es que admite el punto “.” como separador decimal.

document.write (parseFloat("2.5") + "<br/>");  // El resultado será 2.5
document.write (parseFloat("2,5") + "<br/>");  // El resultado será 2
document.write (parseFloat("a89")); // El resultado será NaN

En el ejemplo superior en el caso de 2,5 el resultado será 2 ya que como hemos comentado anteriormente “parseFloat” solo acepta números, y el signo punto como separador decimal.

Función isNaN ()

Determina si el valor que le pasamos no es un número.

En el caso de que no sea un número devuelve «true» y si es un número  devuelve «false».

document.write (isNaN(2.5) + "<br/>");   // Devolverá false
document.write (isNaN("2.5") + "<br/>"); // Devolverá false
document.write (isNaN("palabra") + "<br/>");   // Devolverá true
document.write (isNaN(true)); // Devolverá false

En el último caso del ejemplo de arriba, devolverá false ya que antes de la comprobación se aplica la conversión implícita de tipos, por la que true es 1.

Función isFinite ()

Antes de ver ésta función conozcamos dos tipos de valores especiales que todavía no hemos visto, «infinity» e «-infinity».

Infinity:

Indica que el resultado de una operación ha alcanzado un valor demasiado alto para Javascript.

El número más alto que acepta Javascript es 1.7976931348623157e+308, un número mayor es considerado infinito.

-Infinity:

Es igual a «infinity» pero aplicado a los números negativos.

Probemos con un ejemplo.

document.write ((2/0) + "<br/>");  // Devolverá infinity        
document.write ((-2/0) + "<br/>"); // Devolverá -infinity

La función «isFinite» determina si el valor es finito. En el caso de que sea finito devuelve true y si es un valor de tipo infinity, -infinity o NaN, devuelve true.

Veámoslo:

document.write (isFinite(25) + "<br/>");       // Devolverá true
document.write (isFinite(2/0) + "<br/>");      // Devolverá false 
document.write (isFinite(-2/0) + "<br/>");     //Devolverá false

Función encodeURI () / decodeURI ()

Esta función es utilizada para codificar una URI. Esto significa que transforma los caracteres especiales excepto ( , / ? : @ & = + $ #) a formato UNICODE, de modo que al leer una cadena que contenga caracteres especiales, no se produzcan errores.

document.write (encodeURI("Qué tal?"));

Al ejecutarse la sentencia de arriba, nos mostrará la cadena de texto codificada, en este caso sustituirá la «e» acentuada y el espacio en blanco transformándolos mediante código UTF-8 a formato UNICODE. El resultado será: Qu%C3%A9%20tal?

NOTA:

UTF-8 es el formato de codificación preferido para e-mail y páginas web.

En HTML-5 la codificación de caracteres por defecto es en UTF-8, también acepta UTF-16 pero hay que especificarlo.

Con anterioridad se utilizaba la función escape() que es similar a encodeURI(), pero está en desuso.

Con decodeURI() realizaremos el proceso inverso. Anteriormente se utilizaba unscape().

Función encodeURIComponent () / decodeURIComponent ()

De manera parecida a encodeURI() se utiliza para codificar una URI. Codifica los caracteres especiales, incluidos ( , / ? : @ & = + $ #).

Probemos con un ejemplo muy común, una URL.

document.write (encodeURIComponent("http://www.misitio.com"));

En este caso sustituye el carácter «:» y las dos barras, por código UTF-8.

http%3A%2F%2Fwww.misitio.com

Función eval ()

Evalua una cadena ejecutándola como si fuese un fragmento de código Javascript.

document.write (eval("var cantidad = 20; cantidad + 5"));

En este último ejemplo el navegador interpretará el contenido de la cadena de texto y lo ejecutará como código, dando el resultado de 25.

Como hemos podido ver en este caso se puede colocar más de una instrucción, tan solo necesitamos el punto y coma para separarlas.

Y hasta aquí las funciones predefinidas. De momento no vamos a ver más sobre las funciones, en el siguiente capítulo de este tutorial de Javascript comenzaremos con la Programación Orientada a Objetos.


Ir a Javascript para novatos 14ª parte

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *