Foros del Web » Programando para Internet » Javascript »

Objeto Boolean

Estas en el tema de Objeto Boolean en el foro de Javascript en Foros del Web. Hola a tod@s. Tengo una gran duda con el objeto Boolean. Resulta que he encontrado por internet una función que devuelve un objeto Boolean, pero ...
  #1 (permalink)  
Antiguo 09/03/2012, 06:11
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 10 meses
Puntos: 58
Objeto Boolean

Hola a tod@s.
Tengo una gran duda con el objeto Boolean. Resulta que he encontrado por internet una función que devuelve un objeto Boolean, pero al usar la función no funciona como yo supongo que debería, y no sé donde está el problema.
La función es así:

Código Javascript:
Ver original
  1. function unaFuncion(elem){
  2.    ....
  3.    ....
  4.    return new Boolean(param);
  5. }

Y yo la uso así:

Código Javascript:
Ver original
  1. existe = unaFuncion(elemento);
  2. if (!existe){
  3.    alert("Falso");
  4. }
  5. else {
  6.     alert("True");
  7. }

Pues resulta que siempre me sale True. Para que me funcione tengo que poner:

Código Javascript:
Ver original
  1. existe = unaFuncion(elemento);
  2. if (existe==false){
  3.    alert("Falso");
  4. }
  5. else {
  6.     alert("True");
  7. }

¿Por qué no funciona con el operador "!"?.
  #2 (permalink)  
Antiguo 09/03/2012, 06:51
Avatar de Shirak2  
Fecha de Ingreso: abril-2008
Ubicación: Granada
Mensajes: 42
Antigüedad: 16 años, 7 meses
Puntos: 19
Respuesta: Objeto Boolean

"existe" en sí es un objeto, por lo que es "truthy". Puedes usar o bien existe.valueOf() para sacar el valor del boolean o castear a boolean el parámetro a la hora de devolverlo en la función, en vez de devolver un objeto (return !!param).
  #3 (permalink)  
Antiguo 09/03/2012, 07:55
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 7 meses
Puntos: 343
Respuesta: Objeto Boolean

[Bienvenido a JavaScript, sentido común 400km.]

La realidad es que no deberías usar jamás Booleans, ya que como menciona Shirak2, en una evaluación coercen a un valor cierto.

Una de las HORRIBLES partes del lenguaje.
__________________
blog | @aijoona

Etiquetas: boolean, funcion, objeto
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 08:07.