Tip boolean v JavaScriptu ima dve možni vrednosti: true in false. Logične vrednosti uporabljamo pri pogojih, primerjavah, zankah in pri preverjanju, ali se neki izraz obravnava kot resničen ali neresničen.
Pomni: V JavaScriptu ni vsaka vrednost v pogoju že zapisana kot true ali false. Veliko drugih vrednosti se v logičnem kontekstu samodejno pretvori v logično vrednost.
Osnovna pravila
- Tip
booleanima dve vrednosti:trueinfalse. - Funkcija
Boolean(vrednost)pretvori podano vrednost v logično vrednost. - Primitivna logična vrednost in objekt
Booleannista isto. - Pri novi kodi praviloma uporabljamo primitivne logične vrednosti, ne pa objektov, ustvarjenih z
new Boolean(). - Metodi
valueOf()intoString()vrneta primitivno vrednost oziroma nizovni zapis logične vrednosti.
Primerjave
Osnovno o logičnih vrednostih
Logične vrednosti uporabljamo povsod, kjer preverjamo, ali nek pogoj velja ali ne velja. Rezultat primerjave je pogosto logična vrednost.
const a = true;
const b = false;
const rezultat1 = 10 > 5;
const rezultat2 = 3 === 7;
<p id="primer1"></p>
<script>
{
const rezultat1 = 10 > 5;
const rezultat2 = 3 === 7;
document.getElementById("primer1").innerHTML =
rezultat1 + "<br>" + rezultat2;
}
</script>
Pretvorba v logično vrednost
Funkcija Boolean() pretvori podano vrednost v logično vrednost. Nekatere vrednosti so v logičnem kontekstu neresnične, druge pa resnične.
| Vrednost | Pretvorba |
|---|---|
false |
false |
0 |
false |
"" |
false |
null |
false |
undefined |
false |
NaN |
false |
"JavaScript" |
true |
25 |
true |
<p id="primer2"></p>
<script>
{
document.getElementById("primer2").innerHTML =
Boolean(2 > 1) + "<br>" +
Boolean(0) + "<br>" +
Boolean("") + "<br>" +
Boolean("Miha");
}
</script>
Pozor: Prazni niz "", število 0, vrednosti null, undefined in NaN se v logičnem kontekstu obravnavajo kot neresnične vrednosti.
Primitivna vrednost in objekt Boolean
Razred Boolean je ovojna objektna različica primitivnega tipa boolean. V praksi je pomembno predvsem to, da se primitivna vrednost false in objekt new Boolean(false) ne obnašata enako v pogojnem stavku.
<p id="primer3"></p>
<script>
{
const primitivna = false;
const objektna = new Boolean(false);
document.getElementById("primer3").innerHTML =
typeof primitivna + "<br>" +
typeof objektna;
}
</script>
<p id="primer4"></p>
<script>
{
const objektna = new Boolean(false);
if (objektna) {
document.getElementById("primer4").textContent =
"Objekt Boolean se v pogoju obravnava kot resničen.";
}
}
</script>
Pozor: Objekt new Boolean(false) ni isto kot primitivna vrednost false. Ker gre za objekt, se v pogoju obravnava kot resničen. Zato v novi kodi praviloma ne uporabljamo konstruktorja new Boolean().
Metode objekta Boolean
Pri delu z logičnimi vrednostmi sta najpomembnejši metodi valueOf() in toString().
| Metoda | Opis |
|---|---|
valueOf() |
Vrne primitivno logično vrednost. |
toString() |
Pretvori logično vrednost v niz "true" ali "false". |
Metoda valueOf()
Metoda valueOf() vrne primitivno logično vrednost:
<p id="primer5"></p>
<script>
{
const bool = true;
const x = bool.valueOf();
document.getElementById("primer5").textContent = x;
}
</script>
Metoda toString()
Metoda toString() pretvori logično vrednost v niz:
<p id="primer6"></p>
<script>
{
const bool = false;
const x = bool.toString();
document.getElementById("primer6").textContent = x;
}
</script>
Uporaba v pogojih
Logične vrednosti se najpogosteje uporabljajo v pogojnih stavkih. Pogoj ni nujno že zapisan kot logična vrednost, saj JavaScript pri preverjanju samodejno uporabi pretvorbo v logično vrednost.
<p id="primer7"></p>
<script>
{
const uporabniskoIme = "Miha";
if (uporabniskoIme) {
document.getElementById("primer7").textContent =
"Pogoj je izpolnjen.";
}
}
</script>
Priporočila
- V novi kodi uporabljaj primitivne logične vrednosti
trueinfalse. - Za pretvorbo vrednosti v logično vrednost uporabljaj
Boolean(vrednost). - Pri razlagi pogojev jasno loči med resničnimi in neresničnimi vrednostmi.
- Za delo z logičnimi vrednostmi praviloma ne uporabljaj konstruktorja
new Boolean(). - Pri primerih s pogoji pokaži tudi, da JavaScript v logičnem kontekstu uporablja samodejno pretvorbo vrednosti.
Pogoste napake
- Primitivna logična vrednost in objekt
Booleanse obravnavata kot enakovredna, čeprav to ni isto. - Konstruktor
new Boolean(false)se uporablja, kot da bi v pogoju predstavljal neresnično vrednost. - Pri razlagi logičnih vrednosti ni pojasnjeno, da se druge vrednosti v pogojih samodejno pretvarjajo v logično vrednost.
- Metoda
Boolean()in konstruktornew Boolean()se predstavljata kot enakovredni možnosti, čeprav imata različen rezultat. - Vrednosti
0,"",null,undefinedinNaNse obravnavajo, kot da bi bile v pogoju resnične.