Logiikka on minkä tahansa ohjelman perusta, joten sinun kannattaa hallita loogisia operaattoreita voidaksesi jäsentää koodisi tehokkaasti.

Loogisten operaattorien avulla voit suorittaa loogisia operaatioita loogisille arvoille. Niiden avulla voit yhdistää, kumota tai vertailla loogisia arvoja ja tehdä loogisia päätöksiä koodissasi tulosten perusteella.

Tutustu erilaisiin loogisiin operaattoreihin, joita JavaScript tukee, mukaan lukien ES6 Nullish coalescing -operaattori.

Looginen AND (&&) -operaattori

AND (&&) -operaattori on looginen operaattori, joka palauttaa totta jos molemmat operandit arvostavat totta ja väärä muuten.

Tässä on AND-operaattorin syntaksi:

a && b

Tässä on esimerkki AND-operaattorista:

konst a = 5;
konst b = 10;
konst c = 15;

konst tulos_1 = (a < b) && (b < c);
konsoli.log (tulos_1); // totta

konst tulos_2 = (a > b) && (b < c);
konsoli.log (tulos_2); // väärä

Tässä esimerkissä tulos_1 arvostelee totta koska lausekkeen kaksi operandia arvostavat arvoa totta. Kuitenkin, tulos_2 arvostelee väärä koska ensimmäinen operandi (a > b) palaa väärä.

instagram viewer

Jos molemmat operandit eivät ole loogisia, JavaScript yrittää muuntaa ne loogisiksi arvoiksi ennen lausekkeen arviointia. Muuntaakseen ne booleaniksi JavaScript arvioi ensin, ovatko arvot totta vai vääriä.

JavaScript pitää mitä tahansa arvoa, joka ei ole eksplisiittisesti väärä, totuusarvona. Muunnettaessa ne evaluoituvat loogisiksi arvoiksi totta.

Kuitenkin tietyt arvot ja tietotyypit JavaScriptissä ovat vääriä, joten kun JavaScript muuntaa ne, ne evaluoivat boolen väärä.

JavaScriptin väärät arvot ovat:

  • väärä
  • tyhjä
  • määrittelemätön
  • NaN (Ei numero)
  • 0
  • BigInt (0n)
  • Tyhjä merkkijono ("" tai '' tai ``)
  • määrittelemätön

Kun käytät AND-operaattoria arvioimaan ei-totuusarvoja, lauseke palauttaa välittömästi ensimmäisen operandin arvon, jos operandi on väärä arvioimatta toista. Tätä toimintaa kutsutaan oikosulkuksi, ja voit käyttää sitä kirjoittamiseen ehdolliset lauseet JavaScriptissä.

Kuitenkin, jos ensimmäinen operandi on totuus, lauseke etenee arvioimaan toinen operandi. Jos toinen operandi on totta, se palauttaa sen.

Esimerkiksi:

konst a = 5;
konst b = 'Hei';
konst c = tyhjä;

konst tulos_1 = a && b;
konsoli.log (tulos_1); // "Hei"

konst tulos_2 = c && b;
konsoli.log (tulos_2); // tyhjä

Tässä esimerkissä tulos_1 arvo on "Hei", koska molemmat operandit lausekkeessa ovat totta. Kuitenkin, tulos_2 oikosulkuja ja palautuksia tyhjä arvioimatta toista operandia.

Huomaa, että jos operandeja on enemmän, AND-operaattori jatkaa niiden arviointia, kunnes se löytää väärän arvon. Jos se ei kohtaa väärää arvoa, se palauttaa viimeisen kohtaamansa totuuden arvon.

Looginen TAI (||) -operaattori

OR (||) -operaattori on looginen operaattori, joka palauttaa totta jos ja vain jos yksi tai useampi sen operandi on totta. Se vain palaa väärä kun molemmat operandit ovat väärä.

Tässä on OR-operaattorin syntaksi:

a || b

Tässä on esimerkki käytössä olevasta OR-operaattorista:

konst a = 5;
konst b = 10;
konst c = 15;

konst tulos_1 = (a < b) || (b < c);
konsoli.log (tulos_1); // totta

konst tulos_2 = (a > b) || (b < c);
konsoli.log (tulos_2); // totta

konst tulos_3 = (a > b) || (b > c);
konsoli.log (tulos_3); // väärä

Yllä olevassa esimerkissä tulos_1 arvostelee totta koska molemmat operandit lausekkeessa arvioivat arvoksi totta. tulos_2 arvostelee totta koska toinen operandi arvioi arvoon totta. tulos_3 arvostelee väärä koska lausekkeen kaksi operandia arvostavat arvoa väärä.

Kun käytät OR-operaattoria muissa kuin loogisissa yhteyksissä, JavaScript yrittää muuntaa loogisiksi arvoiksi ennen lausekkeen arviointia.

Kun lauseke arvioidaan, jos ensimmäinen operandi on totuus, operaattori oikosulkee ja palauttaa sen. Jos se on kuitenkin väärä, se arvioi seuraavan operandin, kunnes se kohtaa totuudenmukaisen operandin. Jos lausekkeessa ei ole totuudenmukaisia ​​operandeja, se palauttaa viimeisen havaitsemansa väärän arvon.

Esimerkiksi:

konst a = 5;
konst b = 'Hei';
konst c = tyhjä;

konst tulos_1 = a || b;
konsoli.log (tulos_1); // 5

konst tulos_2 = c || b;
konsoli.log (tulos_2); // "Hei"

konst tulos_3 = c || " ";
konsoli.log (tulos_3); // " "

Yllä olevassa esimerkissä tulos_1 oikosulkuja ja palautuksia 5 koska se on todellinen arvo. tulos_2 palauttaa "Hei", koska se on ensimmäinen totuusarvo, jonka se kohtaa lausekkeessa. tulos_3 palauttaa tyhjän merkkijonon, koska se on lausekkeen viimeinen väärä arvo.

Looginen EI (!) -operaattori

Looginen NOT (!) -operaattori on unaarinen operaattori, joka palauttaa operandinsa vastakkaisen loogisen arvon.

Tässä on NOT-operaattorin syntaksi:

!x

Missä x on totuusarvo tai totuus tai väärä arvo.

Tässä on esimerkki käytössä olevasta NOT-operaattorista:

konst a = 5;
konst b = '';
konst c = totta;

konst tulos_1 = !a;
konsoli.log (tulos_1); // väärä

konst tulos_2 = !b;
konsoli.log (tulos_2); // totta

konst tulos_3 = !c;
konsoli.log (tulos_3); // väärä

Yllä olevassa esimerkissä NOT-operaattori palauttaa loogisten operandien käänteisen arvon. Kun käytät NOT-operaattoria ei-loogisissa yhteyksissä (tulos_1 & tulos_2), se muuntaa totuusarvot käänteisarvoiksi totta ja muuntaa väärät arvot käänteisarvoiksi väärä.

Nullish Coalescing (??) -operaattori

Nolla-yhdistysoperaattori on looginen operaattori, joka arvioi kaksi operandia ja palauttaa ensimmäisen operandin, jos se ei ole tyhjä tai määrittelemätön. Muussa tapauksessa se palauttaa toisen operandin.

Yhdellä silmäyksellä tyhjä yhdistämisoperaattori saattaa näyttää samalta kuin looginen OR (||) -operaattori, mutta näin ei ole. Keskeinen ero on, että OR-operaattori palauttaa oikeanpuoleisen operandin, jos vasen operandi on "mikä tahansa" väärä arvo, ei vain tyhjä tai määrittelemätön.

Se tarjoaa tiiviin tavan valita oletusarvo kohtaamisen yhteydessä tyhjä tai määrittelemätön arvot.

Tässä on syntaksi nullish-liitosoperaattorille:

x?? y

Tässä on esimerkki käytössä olevasta nullish-liitosoperaattorista:

konst nimi = tyhjä;
konst oletusnimi = "John Doe";

konst tulos_1 = nimi?? oletusnimi;
konsoli.log (tulos_1); // "John Doe"

konst ikä = 0;
konst oletusikä = 25;

konst tulos_2 = ikä?? oletusIkä;
konsoli.log (tulos_2); // 0

Yllä olevassa esimerkissä tulos_1 palauttaa "John Doe", koska ensimmäisen operandin arvo oli tyhjä. tulos_2 palaa 0 koska vaikka se on väärä arvo, se ei ole kumpaakaan tyhjä ei myöskään määrittelemätön.

Loogisten operaattoreiden käyttäminen koodissasi

Loogisia operaattoreita käytetään yleisesti ehdollisten lausekkeiden kirjoittamiseen, oletusarvojen määrittämiseen tai loogisten arvojen vaihtamiseen ehtojen perusteella.

Näitä loogisia operaattoreita hyödyntämällä voit kirjoittaa tiiviimpää ja ilmeikkäämpää koodia, joka käsittelee erilaisia ​​skenaarioita arvojen totuudenmukaisuuden tai virheellisyyden perusteella.