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?