Foros del Web » Programando para Internet » Javascript »

Preguntilla sobre IsNaN()

Estas en el tema de Preguntilla sobre IsNaN() en el foro de Javascript en Foros del Web. Buenas de nuevo, He estado mirando con más detenimiento la función isNaN(x), y entiendo que devuelve 'true' si 'x' NO es un número, y que ...
  #1 (permalink)  
Antiguo 06/04/2007, 05:29
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Preguntilla sobre IsNaN()

Buenas de nuevo,

He estado mirando con más detenimiento la función isNaN(x), y entiendo que devuelve 'true' si 'x' NO es un número, y que el hecho de que devuelva 'false' no implica que 'x' sea un número, sino que puede ser otra cosa.

Lo que me he topado con lo siguiente, y no comprendo por qué en las líneas 1,3,4 devuelve 'false' !!!???

isNaN(null) --> false // ???
isNaN("null") --> true
isNaN("") --> false // ???
isNaN(" ") --> false // ???
isNaN( 0x900 ) --> false
isNaN("0x900") --> false

isNaN(undefined) --> true
isNaN("undefined") --> true

isNaN(NaN) --> true
isNaN("NaN") --> true

isNaN("hola") --> true

isNaN("23") --> false
isNaN(23) --> false

isNaN("a23") --> true
isNaN("23a") --> true
isNaN("23 3") --> true
isNaN("23 a") --> true

Última edición por MikiBroki; 06/04/2007 a las 06:02
  #2 (permalink)  
Antiguo 06/04/2007, 19:18
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Re: Preguntilla sobre IsNaN()

... ninguna idea de por qué ocurre... ?
  #3 (permalink)  
Antiguo 06/04/2007, 19:59
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Preguntilla sobre IsNaN()

Creo que porque primero se hace la conversión de la cadena a analizar a Number, luego se le pasa el isNan:

isNaN(null) --> false // ???
isNaN("") --> false // ???
isNaN(" ") --> false // ???

de esa manera
Number(null) = 0
Number("") = 0
Number(" ") = 0

Y ya sabemos que isNaN(0) = false según la propia función (que esto yo no lo entiendo, 0 es un número..), entonces devuelve false en esos casos como se espera.


Si no me equivoco...
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
  #4 (permalink)  
Antiguo 06/04/2007, 21:19
 
Fecha de Ingreso: abril-2002
Mensajes: 1.014
Antigüedad: 22 años
Puntos: 8
Re: Preguntilla sobre IsNaN()

Cita:
Iniciado por derkenuke Ver Mensaje
Creo que porque primero se hace la conversión de la cadena a analizar a Number, luego se le pasa el isNan
Pues creo que tienes razón y va a ser eso. Lo que no entiendo es por qué Number() si se le pasa null, "" o " " devuelva cero en vez de NaN...

Cita:
Y ya sabemos que isNaN(0) = false según la propia función (que esto yo no lo entiendo, 0 es un número..), entonces devuelve false en esos casos como se espera.
Eso es porque isNaN() devuelve TRUE si NO es un número, o sea, si el parámetro es NaN.
  #5 (permalink)  
Antiguo 06/04/2007, 21:40
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Preguntilla sobre IsNaN()

Cita:
Iniciado por derkeNuke
Y ya sabemos que isNaN(0) = false según la propia función (que esto yo no lo entiendo, 0 es un número..), entonces devuelve false en esos casos como se espera.
Cita:
Iniciado por MikiBroki Ver Mensaje
Eso es porque isNaN() devuelve TRUE si NO es un número, o sea, si el parámetro es NaN.
Sí, cierto, me patinó la neurona ahí...
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:25.