Ejemplos de funciones de la librería Javascript

Valoración del artículo:
Vemos varios ejemplos de funciones de la librería: eval(), parseInt(), isNaN()...
Publicado: 11/3/02
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
Ahora podemos ver varios ejemplos de utilización de funciones de la librería que proporciona Javascript

Función eval

Esta función es muy importante, tanto que hay algunas aplicaciones de Javascript que no se podrían realizar si no la utilizamos. Su utilización es muy simple, pero puede que resulte un poco más complejo entender en qué casos utilizarla porque a veces resulta un poco sutil su aplicación.

Con los conocimientos actuales no podemos hacer un ejemplo muy complicado, pero por lo menos podemos ver en marcha la función. Vamos a utilizarla en una sentencia un poco rara y bastante inservible, pero si la conseguimos entender conseguiremos entender también la función eval.

var miTexto = "3 + 5"
eval("document.write(" + miTexto +")")

Primero creamos una variable con un texto, en la siguiente línea utilizamos la función eval y como parámetro le pasamos una instrucción javascript para escribir en pantalla. Si concatenamos los strings que hay dentro de los paréntesis de la función eval nos queda esto.

document.write(3 + 5)

La función eval ejecuta la instrucción que se le pasa por parámetro, así que ejecutará esta sentencia, lo que dará como resultado que se escriba un 8 en la página web. Primero se resuelve la suma que hay entre paréntesis, con lo que obtenemos el 8 y luego se ejecuta la instrucción de escribir en pantalla.

Función parseInt

Esta función recibe un número, escrito como una cadena de caracteres, y un número que indica una base. En realidad puede recibir otros tipos de variables, dado que las variables no tienen tipo en Javascript, pero se suele utilizar pasándole un string para convertir la variable de texto en un número.

Las distintas bases que puede recibir la función son 2, 8, 10 y 16. Si no le pasamos ningún valor como base la función interpreta que la base es decimal. El valor que devuelve la función siempre tiene base 10, de modo que si la base no es 10 convierte el número a esa base antes de devolverlo.

Veamos una serie de llamadas a la función parseInt para ver lo que devuelve y entender un poco más la función.

document.write (parseInt("34"))
Devuelve el numero 34

document.write (parseInt("101011",2))
Devuelve el numero 43

document.write (parseInt("34",8))
Devuelve el numero 28

document.write (parseInt("3F",16))
Devuelve el numero 63

Esta función se utiliza en la práctica para un montón de cosas distintas en el manejo con números, por ejemplo obtener la parte entera de un decimal.

document.write (parseInt("3.38"))
Devuelve el numero 3

También es muy habitual su uso para saber si una variable es numérica, pues si le pasamos un texto a la función que no sea numérico nos devolverá NaN (Not a Number) lo que quiere decir que No es un Número.

document.write (parseInt("desarrolloweb.com"))
Devuelve el numero NaN

Este mismo ejemplo es interesante con una modificación, pues si le pasamos una combinación de letras y números nos dará lo siguiente.

document.write (parseInt("16XX3U"))
Devuelve el numero 16

document.write (parseInt("TG45"))
Devuelve el numero NaN

Como se puede ver, la función intenta convertir el string en número y si no puede devuelve NaN.

Todos estos ejemplos, un tanto inconexos, sobre cómo trabaja parseInt los revisaremos más adelante en ejemplos más prácticos cuando tratemos el trabajo con formularios.

Función isNaN

Esta función devuelve un boleano dependiendo de si lo que recibe es un número o no. Lo único que puede recibir es un número o la expresión NaN. Si recibe un NaN devuelve true y si recibe un número devuelve false. Es una función muy sencilla de entender y de utilizar.

La función suele trabajar en combinación con la función parseInt o parseFloat, para saber si lo que devuelven estas dos funciones es un número o no.

miInteger = parseInt("A3.6")
isNaN(miInteger)

En la primera línea asignamos a la variable miInteger el resultado de intentar convertir a entero el texto A3.6. Como este texto no se puede convertir a número la función parseInt devuelve NaN. La segunda línea comprueba si la variable anterior es NaN y como si que lo es devuelve un true.

miFloat = parseFloat("4.7")
isNaN(miFloat)

En este ejemplo convertimos un texto a número con decimales. El texto se convierte perfectamente porque corresponde con un número. Al recibir un número la función isNaN devuelve un false.

Referencia: Validar entero en campo de formulario
Tenemos un Taller de Javascript muy interesante que ha sido realizado para afianzar los conocimientos de estos capítulos. Se trata de un script para validar un campo de formulario de manera que sepamos seguro que dentro del campo hay siempre un número entero. Puede ser muy interesante leerlo ahora, ya que utilizamos las funciones isNaN() y parseInt(). Ver el taller

Comentarios
Fueron enviados 5 comentarios al artículo
1 comentario no revisado
4 comentarios revisados:
Por: Anónimo
16/2/04
Estoy intentando validar números en un formulario con la función isNaN y parseInt.

Bien, todo parece funcionar perfectamente, ¡¡pero!!, siempre hay peros, si el usuario introduce 037 entonces la función devuelve 31, si es 059 entonces devuelve 5, si es 00450 devuelve 296 y así sucesivamente.

RESPUESTA

Lo que está pasando al introducir un cero delante de un número es que Javascript piensa que estás introduciendo el número en octal, es decir, en base 8.

Los números en octal se escriben en Javascript con un cero delante, algo como 021, lo que equivaldría en el sistema decimal al número 17.

Fijémonos en este script para que se entienda mejor esto:

Por: jose
04/1/07
Sobre los problemas que esta dando la funcion isNaN se producen por que parseFloat traduce en n&uacute;mero toda la parte del string que puede (por ejemplo 91pp lo traduce a 91) y solo devuelve NaN si la cadena no empieza por un n&uacute;mero.<br />
<br />
La soluci&oacute;n que yo he hecho es algo como esto:<br />
<br />
valorParseado = parseFloat(valor);<br />
if (valorParseado!=valor) alert(&quot;error&quot;);<br />
<br />
de momento me funciona pero tengo que seguir haciendo pruebas.
Por: Hemo Vintage
18/4/07
Hola! Especificamente el Sumador Puede funcionar de esta manera:

<html>
<head>
</head>
<body>
<h1>suma</h1>
<script type="text/javascript">
primero = parseInt(prompt("Ingrese un Numero para Sumar",""));
segundo = parseInt(prompt("Ingrese Otro Numero",""));
alert ( primero + segundo );
</script>
Resultado Final
</body>
</html>

Basicamente lo que hice fue integrar el parseInt(que cambia la variable de String a Numerica) al previo del Prompt (que siempre arroja Strings), luego de haber ingresado la variable se transforma en Numerica.

Lo demas simplemente fue sumar las variables.

En el caso de Resta, division y Multiplicacion no deberia de haber problemas, porque los operadores automaticamente convierten, en lugar de la suma, que concatena.

Por: Juan Hito
29/5/07
Para la función parseInt(); se debe tomar en cuenta los siguiente:
1.- Cuando el primer argumento comienza con 0 (cero) y no está especificado el segundo arg. éste se transforma en ocho (base octal).
2.- Cuando el primer arg. comienza con 0x (cero x) y no está especificado el segundo, éste se transforma en 16 (base hexadecimal)
3.- Cuando el primer arg. es alfanumérico, es decir, mezcla números con letras, y comienza por un caracter numérico sólo toma en cuenta los números hasta que aparezca un caracter no numérico, sin contarlo, por supuesto. De caso contrario devuelve NaN (Not a Number).

Por si las moscas arg. significa argumento.


Aporte de un aficionado al JavaScript (Chile). xD

Manuales relacionados
Categorias relacionadas
El autor
Lectura recomendada
Compra este libro en Agapea, la librería urgente a domicilio.
Últimas noticias
Alojados en el grupo