A logika minden program alapja, ezért érdemes elsajátítania a logikai operátorokat a kód hatékony felépítéséhez.
A logikai operátorok lehetővé teszik logikai műveletek végrehajtását logikai értékeken. Lehetővé teszik a logikai értékek kombinálását, tagadását vagy összehasonlítását, és az eredmény alapján logikai döntéseket hozhat a kódban.
Fedezze fel a JavaScript által támogatott különféle logikai operátorokat, beleértve az ES6 Nullish egyesítő operátort.
A logikai ÉS (&&) operátor
Az ÉS (&&) operátor egy logikai operátor, amely visszatér igaz ha mindkét operandus kiértékeli igaz és hamis másképp.
Íme az ÉS operátor szintaxisa:
a && b
Íme egy példa a használt ÉS operátorra:
const a = 5;
const b = 10;
const c = 15;const eredmény_1 = (a < b) && (b < c);
konzol.log (eredmény_1); // igaz
const eredmény_2 = (a > b) && (b < c);
konzol.log (eredmény_2); // hamis
Ebben a példában eredmény_1 -ra értékeli igaz mert a kifejezésben szereplő két operandus kiértékelődik igaz. Azonban, eredmény_2 -ra értékeli hamis mert az első operandus (a > b) visszatér hamis.
Ha mindkét operandus nem logikai érték, A JavaScript megpróbálja konvertálni őket logikai értékekbe a kifejezés kiértékelése előtt. Ahhoz, hogy ezeket logikai értékké alakítsa, a JavaScript először kiértékeli, hogy az értékek igazak vagy hamisak.
A JavaScript minden olyan értéket igaznak tekint, amely nem kifejezetten hamis. Átalakításkor logikai értékre értékelik ki igaz.
Azonban bizonyos értékek és adattípusok JavaScriptben hamisak, így amikor a JavaScript átalakítja őket, logikai értékre értékeli ki őket hamis.
A JavaScript hamis értékei a következők:
- hamis
- nulla
- határozatlan
- NaN (Nem szám)
- 0
- BigInt (0n)
- Üres karakterlánc ("" vagy '' vagy ``)
- határozatlan
Ha az ÉS operátort használja a nem logikai értékek kiértékelésére, a kifejezés azonnal visszaadja az első operandus értékét, ha az operandus hamis a második kiértékelése nélkül. Ezt a viselkedést rövidzárnak nevezik, és használhatja írásra feltételes utasítások JavaScriptben.
Ha azonban az első operandus igaz, a kifejezés a második operandus kiértékelésére lép. Ha a második operandus igaz, akkor visszaadja.
Például:
const a = 5;
const b = 'Helló';
const c = nulla;const eredmény_1 = a && b;
konzol.log (eredmény_1); // "Helló"
const eredmény_2 = c && b;
konzol.log (eredmény_2); // nulla
Ebben a példában eredmény_1 „Hello”-ra értékeli, mert a kifejezés mindkét operandusa igaz. Azonban, eredmény_2 rövidzárlatok és visszatérések nulla a második operandus értékelése nélkül.
Vegye figyelembe, hogy ha több operandus van, az ÉS operátor mindaddig kiértékeli őket, amíg hamis értékkel nem találkozik. Ha nem találkozik hamis értékkel, akkor az utolsó igaz értéket adja vissza, amellyel találkozott.
A logikai VAGY (||) operátor
Az OR (||) operátor egy logikai operátor, amely visszatér igaz akkor és csak akkor, ha egy vagy több operandusa az igaz. Csak visszajön hamis amikor mindkét operandus hamis.
Íme az OR operátor szintaxisa:
a || b
Íme egy példa a használt VAGY operátorra:
const a = 5;
const b = 10;
const c = 15;const eredmény_1 = (a < b) || (b < c);
konzol.log (eredmény_1); // igazconst eredmény_2 = (a > b) || (b < c);
konzol.log (eredmény_2); // igaz
const eredmény_3 = (a > b) || (b > c);
konzol.log (eredmény_3); // hamis
A fenti példában eredmény_1 -ra értékeli igaz mert a kifejezésben mindkét operandus kiértékelődik igaz. eredmény_2 -ra értékeli igaz mert a második operandus arra értékeli ki igaz. eredmény_3 -ra értékeli hamis mert a kifejezésben szereplő két operandus kiértékelődik hamis.
Ha az OR operátort nem logikai kontextusban használja, a JavaScript megpróbál logikai értékekké konvertálni a kifejezés kiértékelése előtt.
A kifejezés kiértékelésekor, ha az első operandus igaz, az operátor rövidre zárja és visszaadja. Ha azonban hamis, akkor a következő operandust értékeli, amíg nem találkozik egy igaz operandussal. Ha a kifejezésben nincsenek igaz operandusok, akkor az utolsó hamis értéket adja vissza, amellyel találkozott.
Például:
const a = 5;
const b = 'Helló';
const c = nulla;const eredmény_1 = a || b;
konzol.log (eredmény_1); // 5const eredmény_2 = c || b;
konzol.log (eredmény_2); // "Helló"
const eredmény_3 = c || " ";
konzol.log (eredmény_3); // " "
A fenti példában eredmény_1 rövidzárlatok és visszatérések 5 mert ez egy igaz érték. eredmény_2 a „Hello”-t adja vissza, mert ez az első igaz érték, amellyel a kifejezésben találkozik. eredmény_3 üres karakterláncot ad vissza, mert ez a kifejezés utolsó hamis értéke.
A Logikai NEM (!) Operátor
A logikai NOT (!) operátor egy unáris operátor, amely az operandusa ellentétes logikai értékét adja vissza.
Íme a NOT operátor szintaxisa:
!x
Ahol x logikai érték, igaz vagy hamis érték.
Íme egy példa a használt NOT operátorra:
const a = 5;
const b = '';
const c = igaz;const eredmény_1 = !a;
konzol.log (eredmény_1); // hamisconst eredmény_2 = !b;
konzol.log (eredmény_2); // igaz
const eredmény_3 = !c;
konzol.log (eredmény_3); // hamis
A fenti példában a NOT operátor a logikai operandusok inverz értékét adja vissza. Ha a NOT operátort nem logikai kontextusban használja (eredmény_1 & eredmény_2), az igaz értékeket az inverz értékre konvertálja igaz és a hamis értékeket az inverz értékre konvertálja hamis.
The Nullish Coalescing (??) Operator
A nullish egyesítő operátor egy logikai operátor, amely kiértékel két operandust, és visszaadja az első operandust, ha nem nulla vagy határozatlan. Ellenkező esetben a második operandust adja vissza.
Első pillantásra a nullish összevonási operátor azonosnak tűnhet a logikai VAGY (||) operátorral, de nem ez a helyzet. A legfontosabb különbség az, hogy az OR operátor a jobb oldali operandust adja vissza, ha a bal oldali operandus „bármilyen” hamis érték, nem csak nulla vagy határozatlan.
Tömör módot biztosít az alapértelmezett érték kiválasztására találkozáskor nulla vagy határozatlan értékeket.
Íme a nullish összevonási operátor szintaxisa:
x?? y
Íme egy példa a használatban lévő nullish összevonási operátorra:
const név = nulla;
const defaultName = "Gipsz Jakab";const eredmény_1 = név?? defaultName;
konzol.log (eredmény_1); // "Gipsz Jakab"const kor = 0;
const defaultAge = 25;
const eredmény_2 = életkor?? defaultAge;
konzol.log (eredmény_2); // 0
A fenti példában eredmény_1 „John Doe”-t adja vissza, mert az első operandus értéke: nulla. eredmény_2 visszatér 0 mert bár hamis érték, de egyik sem az nulla sem határozatlan.
Logikai operátorok használata a kódban
A logikai operátorokat általában feltételes utasítások írására, alapértelmezett értékek hozzárendelésére vagy logikai értékek feltétel alapján történő váltására használják.
Ezeknek a logikai operátoroknak a használatával tömörebb és kifejezőbb kódot írhat, amely különböző forgatókönyveket kezel az értékek igazságossága vagy hamissága alapján.