Avatar billede o-zone Nybegynder
02. december 2009 - 10:39 Der er 2 kommentarer og
1 løsning

Test for boolean værdi?

Hej med jer.

Jeg har en funktion som kan tage 1 argument som enten kan være en boolsk værdi, et objekt, undefined eller ingenting (hmm ... de sidste to er vel i virkeligheden det samme, eller er de?)

Jeg har brug for at vide med sikkerhed hvilken af de tre/fire ovenstående jeg har modtaget.

Jeg rodede mig selv ud i noget i retning af:
---8<----------
if (arguments.length > 0){
  if(arguments[0] instanceof Object){
    // der kom et objekt med
  } else {
    // der kom en primitiv med
    if (arguments[0] === true){
      // der kom en boolsk true med
    } else if (arguments[0] === false){
      // der kom en boolsk false med
    } else {
      // der kom en ikke boolsk primitiv med
    }
  }
} else {
  // der kom ingen argumenter med
}
---8<----------

Men dels er det grimt som en svigermor fra helvede, og endnu vigtigere er jeg ikke helt sikker på at det er godt nok - f.eks. vil den tydeligvis fejle hvis den får en Boolean med (objektet - ikke primitiven), da den vil teste positiv på at være instanceof Objekt :-/

Er der nogen der ved hvordan man nemt og med sikkerhed kan fastslå om en given variabel er en boolsk værdi eller noget andet?
Avatar billede j3ppah Novice
02. december 2009 - 11:42 #1
Prøv at checke det her.
http://www.java2s.com/Tutorial/JavaScript/0040__Operators/Getvariabletype.htm

Tror det kan hjælpe dig, der kan du i hvertfald finde ud af hvilken type de er.

Ved at bruge TypeOf(argument[0]);

Så kan du jo evt, smide det i en switch, eller i if's . Your choise ;)

Håber det kunne hjælpe, skriv hvis jeg skal smide svar.
Avatar billede o-zone Nybegynder
02. december 2009 - 12:15 #2
For pokker da, jeg må være træt her til morgen - typeof kender jeg jo godt! :"-)

Smid et svar, så får du points!
Avatar billede j3ppah Novice
02. december 2009 - 12:43 #3
Hehe :)...
Er da bare glad for at kunne hjælpe ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester