Logika je základom každého programu, takže budete chcieť ovládať logické operátory, aby ste mohli efektívne štruktúrovať svoj kód.

Logické operátory vám umožňujú vykonávať logické operácie s boolovskými hodnotami. Umožňujú vám kombinovať, negovať alebo porovnávať boolovské hodnoty a robiť logické rozhodnutia vo vašom kóde na základe výsledku.

Preskúmajte rôzne logické operátory, ktoré JavaScript podporuje, vrátane operátora ES6 Nullish coalescing.

Logický operátor AND (&&).

Operátor AND (&&) je logický operátor, ktorý vracia pravda ak sa oba operandy vyhodnotia ako pravda a falošný inak.

Tu je syntax operátora AND:

a && b

Tu je príklad používaného operátora AND:

konšt a = 5;
konšt b = 10;
konšt c = 15;

konšt vysledok_1 = (a < b) && (b < c);
konzoly.log (vysledok_1); // pravda

konšt vysledok_2 = (a > b) && (b < c);
konzoly.log (vysledok_2); // nepravda

V tomto príklade vysledok_1 hodnotí na pravda pretože dva operandy vo výraze sa vyhodnotia ako pravda. však vysledok_2 hodnotí na falošný pretože prvý operand (a > b) sa vracia falošný.

instagram viewer

Ak oba operandy nie sú boolovské, JavaScript sa ich pokúsi skonvertovať do boolovských hodnôt pred vyhodnotením výrazu. Ak ich chcete previesť na boolovské hodnoty, JavaScript najprv vyhodnotí, či sú hodnoty pravdivé alebo nepravdivé.

JavaScript považuje každú hodnotu, ktorá nie je vyslovene falošná, za pravdivú hodnotu. Pri konverzii sa vyhodnotia ako boolovská hodnota pravda.

Avšak určité hodnoty a dátové typy v JavaScripte sú falošné, takže keď ich JavaScript skonvertuje, vyhodnotia sa ako boolean falošný.

Falošné hodnoty v JavaScripte sú:

  • falošný
  • nulový
  • nedefinované
  • NaN (Nie je číslo)
  • 0
  • BigInt (0n)
  • Prázdny reťazec ("" alebo '' alebo ``)
  • nedefinované

Keď na vyhodnotenie iných ako boolovských hodnôt použijete operátor AND, výraz okamžite vráti hodnotu prvého operandu, ak je operand nesprávny, bez vyhodnotenia druhého. Toto správanie je známe ako skrat a môžete ho použiť na písanie podmienené príkazy v JavaScripte.

Ak je však prvý operand pravdivý, výraz vyhodnotí druhý operand. Ak je druhý operand pravdivý, vráti ho.

Napríklad:

konšt a = 5;
konšt b = 'Ahoj';
konšt c = nulový;

konšt vysledok_1 = a && b;
konzoly.log (vysledok_1); // "Ahoj"

konšt vysledok_2 = c && b;
konzoly.log (vysledok_2); // nulový

V tomto príklade vysledok_1 vyhodnotí ako „Ahoj“, pretože oba operandy vo výraze sú pravdivé. však vysledok_2 skraty a návraty nulový bez vyhodnotenia druhého operandu.

Všimnite si, že ak existuje viac operandov, operátor AND ich bude naďalej vyhodnocovať, kým nenarazí na falošnú hodnotu. Ak nenarazí na falošnú hodnotu, vráti poslednú pravdivú hodnotu, s ktorou sa stretne.

Logický operátor OR (||).

Operátor OR (||) je logický operátor, ktorý vracia pravda vtedy a len vtedy, ak je jeden alebo viac jeho operandov pravda. Len sa vracia falošný keď sú oba operandy falošný.

Tu je syntax operátora OR:

a || b

Tu je príklad používaného operátora OR:

konšt a = 5;
konšt b = 10;
konšt c = 15;

konšt výsledok_1 = (a < b) || (b < c);
konzoly.log (vysledok_1); // pravda

konšt vysledok_2 = (a > b) || (b < c);
konzoly.log (vysledok_2); // pravda

konšt vysledok_3 = (a > b) || (b > c);
konzoly.log (vysledok_3); // nepravda

Vo vyššie uvedenom príklade vysledok_1 hodnotí na pravda pretože oba operandy vo výraze sa vyhodnotia ako pravda. vysledok_2 hodnotí na pravda pretože druhý operand sa vyhodnotí ako pravda. vysledok_3 hodnotí na falošný pretože dva operandy vo výraze sa vyhodnotia ako falošný.

Keď použijete operátor OR v nelogických kontextoch, JavaScript sa pred vyhodnotením výrazu pokúsi konvertovať na boolovské hodnoty.

Keď je výraz vyhodnotený, ak je prvý operand pravdivý, operátor ho spojí a vráti. Ak je však nepravdivý, pokračuje vo vyhodnocovaní ďalšieho operandu, kým nenarazí na pravdivý operand. Ak vo výraze nie sú žiadne pravdivé operandy, vráti poslednú falošnú hodnotu, na ktorú narazí.

Napríklad:

konšt a = 5;
konšt b = 'Ahoj';
konšt c = nulový;

konšt vysledok_1 = a || b;
konzoly.log (vysledok_1); // 5

konšt výsledok_2 = c || b;
konzoly.log (vysledok_2); // "Ahoj"

konšt výsledok_3 = c || " ";
konzoly.log (vysledok_3); // " "

Vo vyššie uvedenom príklade vysledok_1 skraty a návraty 5 pretože je to pravdivá hodnota. vysledok_2 vráti „Ahoj“, pretože je to prvá pravdivá hodnota, s ktorou sa vo výraze stretne. vysledok_3 vráti prázdny reťazec, pretože je to posledná falošná hodnota vo výraze.

Logický NIE (!) operátor

Logický operátor NOT (!) je unárny operátor, ktorý vracia opačnú boolovskú hodnotu svojho operandu.

Tu je syntax operátora NOT:

!X

Kde X je boolovská alebo pravdivá alebo falošná hodnota.

Tu je príklad používaného operátora NOT:

konšt a = 5;
konšt b = '';
konšt c = pravda;

konšt vysledok_1 = !a;
konzoly.log (vysledok_1); // nepravda

konšt vysledok_2 = !b;
konzoly.log (vysledok_2); // pravda

konšt vysledok_3 = !c;
konzoly.log (vysledok_3); // nepravda

Vo vyššie uvedenom príklade operátor NOT vracia prevrátenú hodnotu booleovských operandov. Keď použijete operátor NOT v iných než boolovských kontextoch (vysledok_1 & vysledok_2), prevádza pravdivé hodnoty na prevrátenú hodnotu pravda a prevedie falošné hodnoty na prevrátenú hodnotu falošný.

Nullish Coalescing (??) operátor

Operátor nulovej koalescencie je logický operátor, ktorý vyhodnocuje dva operandy a vracia prvý operand, ak nie je nulový alebo nedefinované. V opačnom prípade vráti druhý operand.

Na prvý pohľad sa môže zdať nulový spájací operátor identický s logickým operátorom OR (||), ale nie je to tak. Kľúčový rozdiel je v tom, že operátor OR vráti operand na pravej strane, ak je ľavý operand „akákoľvek“ falošná hodnota, nielen nulový alebo nedefinované.

Poskytuje stručný spôsob výberu predvolenej hodnoty pri stretnutí nulový alebo nedefinované hodnoty.

Tu je syntax pre nulový operátor koalescencie:

X?? r

Tu je príklad používaného operátora nulovej koalescencie:

konšt meno = nulový;
konšt defaultName = "John Doe";

konšt vysledok_1 = meno?? defaultName;
konzoly.log (vysledok_1); // "John Doe"

konšt vek = 0;
konšt predvolenýVek = 25;

konšt vysledok_2 = vek?? defaultVek;
konzoly.log (vysledok_2); // 0

Vo vyššie uvedenom príklade vysledok_1 vráti „John Doe“, pretože prvý operand mal hodnotu nulový. vysledok_2 sa vracia 0 pretože hoci je to falošná hodnota, nie je ani jedna nulový ani nedefinované.

Používanie logických operátorov vo vašom kóde

Logické operátory sa bežne používajú na písanie podmienených príkazov, priraďovanie predvolených hodnôt alebo prepínanie boolovských hodnôt na základe podmienok.

Použitím týchto logických operátorov môžete napísať výstižnejší a výraznejší kód, ktorý zvládne rôzne scenáre založené na pravdivosti alebo nepravdivosti hodnôt.