JavaScript Booleans Forklaret - Sådan bruges Booleans i JavaScript

Boolsk

Booleanere er en primitiv datatype, der ofte bruges i computerprogrammeringssprog. Per definition har en boolsk to mulige værdier: trueeller false.

I JavaScript er der ofte implicit type tvang til boolsk. Hvis du for eksempel har en if-sætning, der kontrollerer et bestemt udtryk, tvinges dette udtryk til en boolsk:

const a = 'a string'; if (a) { console.log(a); // logs 'a string' }

Der er kun få værdier, der tvinges til falske:

  • falsk (ikke rigtig tvunget, da den allerede er falsk)
  • nul
  • udefineret
  • NaN
  • 0
  • "" (tom streng)

Alle andre værdier tvinges til sande. Når en værdi tvinges til en boolsk, kalder vi det enten 'falsk' eller 'sand'.

En måde, hvorpå type tvang anvendes, er ved brug af operatorerne eller ( ||) og ( &&):

const a = 'word'; const b = false; const c = true; const d = 0 const e = 1 const f = 2 const g = null console.log(a || b); // 'word' console.log(c || a); // true console.log(b || a); // 'word' console.log(e || f); // 1 console.log(f || e); // 2 console.log(d || g); // null console.log(g || d); // 0 console.log(a && c); // true console.log(c && a); // 'word'

Som du kan se, kontrollerer eller operatøren den første operand. Hvis dette er sandt eller sandt, returnerer det det straks (det er derfor, vi får 'ord' i det første tilfælde og sandt i det andet tilfælde). Hvis det ikke er sandt eller sandt, returnerer det den anden operand (det er derfor, vi får 'word' i det tredje tilfælde).

Med og operatøren fungerer det på lignende måde, men for at 'og' skal være sandt, skal begge operander være sandfærdige. Så det vil altid returnere den anden operand, hvis begge er sande / sandheder, ellers vil den returnere falsk. Derfor bliver vi i det fjerde tilfælde sandt, og i det sidste tilfælde får vi 'ord'.

Det boolske objekt

Der er også et oprindeligt JavaScript-objekt, der ombryder en værdi. Den værdi, der sendes som den første parameter, konverteres om nødvendigt til en boolsk værdi. Hvis værdien udelades, 0, -0, null, false, NaN, udefineret eller den tomme streng (""), har objektet en startværdi på false. Alle andre værdier, herunder ethvert objekt eller strengen "falsk", opretter et objekt med en indledende værdi på sand.

Bland ikke de primitive booleske værdier sandt og falsk med de sande og falske værdier for det boolske objekt.

Flere detaljer

Ethvert objekt, hvis værdi ikke er udefineret eller nul, inklusive et boolsk objekt, hvis værdi er falsk, evalueres til sand, når det sendes til en betinget erklæring. Hvis det er sandt, udfører dette funktionen. For eksempel betingelsen i følgende hvis udsagn evalueres til sand:

const x = new Boolean(false); if (x) { // this code is executed }

Denne adfærd gælder ikke for boolske primitiver. For eksempel betingelsen i følgende hvis udsagn evalueres til falsk:

const x = false; if (x) { // this code is not executed }

Brug ikke et boolsk objekt til at konvertere en ikke-boolsk værdi til en boolsk værdi. Brug i stedet boolsk som en funktion til at udføre denne opgave:

const x = Boolean(expression); // preferred const x = new Boolean(expression); // don't use

Hvis du angiver et hvilket som helst objekt, herunder et boolsk objekt, hvis værdi er falsk, som den oprindelige værdi af et boolsk objekt, har det nye boolske objekt værdien sand.

const myFalse = new Boolean(false); // initial value of false const g = new Boolean(myFalse); // initial value of true const myString = new String('Hello'); // string object const s = new Boolean(myString); // initial value of true

Brug ikke en boolsk genstand i stedet for en boolsk primitiv.