Veremos tres funciones de diverso ámbito que resultan bastante fundamentales en el trabajo habitual con este lenguaje, explicadas a través de ejemplos.
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.
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.
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.
Esperamos que los ejemplos vistos en este artículo hayan resultado interesantes. No obstante, como habíamos señalado anteriormente, existen bastantes otras funciones nativas en Javascript que debemos conocer, pero que están asociadas a clases y objetos nativos Javascript. Pero antes de pasar a ese punto queremos ofrecer una pequeña guía básica para el trabajo con programación orientada a objetos en Javascript.
| Por: Anónimo | 16/2/2004
|
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/2007
|
| Por: Hemo Vintage | 18/4/2007
|
| Por: Juan Hito | 29/5/2007
|
| onclick Por: lucia | 03/2/2010
|
![]() faustor... | El conjunto de manuales de Javacript | 26/2/2010 |
| ON CLICK RESPUESTA Por: gaston | 02/6/2010
|