Logika je základem každého programu, takže budete chtít ovládat logické operátory, abyste mohli efektivně strukturovat svůj kód.
Logické operátory umožňují provádět logické operace s booleovskými hodnotami. Umožňují vám kombinovat, negovat nebo porovnávat booleovské hodnoty a dělat logická rozhodnutí ve vašem kódu na základě výsledku.
Prozkoumejte různé logické operátory, které JavaScript podporuje, včetně operátoru ES6 Nullish coalescing.
Logický operátor AND (&&).
Operátor AND (&&) je logický operátor, který vrací skutečný pokud se oba operandy vyhodnotí jako skutečný a Nepravdivé v opačném případě.
Zde je syntaxe operátoru AND:
a && b
Zde je příklad používaného operátoru AND:
konst a = 5;
konst b = 10;
konst c = 15;konst vysledek_1 = (a < b) && (b < c);
řídicí panel.log (vysledek_1); // skutečný
konst vysledek_2 = (a > b) && (b < c);
řídicí panel.log (vysledek_2); // Nepravdivé
V tomto příkladu výsledek_1 hodnotí k skutečný protože dva operandy ve výrazu se vyhodnotí jako skutečný. Nicméně, výsledek_2 hodnotí k Nepravdivé protože první operand (a > b) se vrací Nepravdivé.
Pokud oba operandy nejsou booleovské, JavaScript se je pokusí převést do booleovských hodnot před vyhodnocením výrazu. Aby je JavaScript převedl na booleovské hodnoty, nejprve vyhodnotí, zda jsou hodnoty pravdivé nebo nepravdivé.
JavaScript považuje jakoukoli hodnotu, která není výslovně nepravdivá, za pravdivou hodnotu. Při převodu se vyhodnotí jako boolean skutečný.
Nicméně určité hodnoty a datové typy v JavaScriptu jsou falešné, takže když je JavaScript převede, vyhodnotí se jako booleovské Nepravdivé.
Falešné hodnoty v JavaScriptu jsou:
- Nepravdivé
- nula
- nedefinováno
- NaN (Není číslo)
- 0
- BigInt (0n)
- Prázdný řetězec ("" nebo '' nebo ``)
- nedefinováno
Když použijete operátor AND k vyhodnocení nebooleovských hodnot, výraz okamžitě vrátí hodnotu prvního operandu, pokud je operand nepravdivý, aniž by vyhodnotil druhý. Toto chování je známé jako zkrat a můžete jej použít k zápisu podmíněné příkazy v JavaScriptu.
Pokud je však první operand pravdivý, výraz pokračuje k vyhodnocení druhého operandu. Pokud je druhý operand pravdivý, vrátí jej.
Například:
konst a = 5;
konst b = 'Ahoj';
konst c = nula;konst vysledek_1 = a && b;
řídicí panel.log (vysledek_1); // "Ahoj"
konst vysledek_2 = c && b;
řídicí panel.log (vysledek_2); // nula
V tomto příkladu výsledek_1 vyhodnotí jako „Ahoj“, protože oba operandy ve výrazu jsou pravdivé. Nicméně, výsledek_2 zkraty a návraty nula bez vyhodnocení druhého operandu.
Všimněte si, že pokud existuje více operandů, operátor AND je bude nadále vyhodnocovat, dokud nenarazí na falešnou hodnotu. Pokud nenarazí na falešnou hodnotu, vrátí poslední pravdivou hodnotu, na kterou narazí.
Logický operátor OR (||)
Operátor OR (||) je logický operátor, který vrací skutečný právě tehdy, pokud je jeden nebo více jeho operandů skutečný. Pouze se vrací Nepravdivé když jsou oba operandy Nepravdivé.
Zde je syntaxe operátoru OR:
a || b
Zde je příklad používaného operátoru OR:
konst a = 5;
konst b = 10;
konst c = 15;konst výsledek_1 = (a < b) || (b < c);
řídicí panel.log (vysledek_1); // skutečnýkonst vysledek_2 = (a > b) || (b < c);
řídicí panel.log (vysledek_2); // skutečný
konst výsledek_3 = (a > b) || (b > c);
řídicí panel.log (vysledek_3); // Nepravdivé
Ve výše uvedeném příkladu výsledek_1 hodnotí k skutečný protože oba operandy ve výrazu se vyhodnotí jako skutečný. výsledek_2 hodnotí k skutečný protože druhý operand se vyhodnotí jako skutečný. výsledek_3 hodnotí k Nepravdivé protože dva operandy ve výrazu se vyhodnotí jako Nepravdivé.
Když použijete operátor OR v nelogických kontextech, JavaScript se před vyhodnocením výrazu pokusí převést na booleovské hodnoty.
Když je výraz vyhodnocen, je-li první operand pravdivý, operátor jej zkratuje a vrátí. Pokud je však nepravdivý, pokračuje ve vyhodnocování dalšího operandu, dokud nenarazí na pravdivý operand. Pokud ve výrazu nejsou žádné pravdivé operandy, vrátí poslední chybnou hodnotu, na kterou narazí.
Například:
konst a = 5;
konst b = 'Ahoj';
konst c = nula;konst výsledek_1 = a || b;
řídicí panel.log (vysledek_1); // 5konst výsledek_2 = c || b;
řídicí panel.log (vysledek_2); // "Ahoj"
konst výsledek_3 = c || " ";
řídicí panel.log (vysledek_3); // " "
Ve výše uvedeném příkladu výsledek_1 zkraty a návraty 5 protože je to pravdivá hodnota. výsledek_2 vrátí „Ahoj“, protože je to první pravdivá hodnota, na kterou ve výrazu narazí. výsledek_3 vrací prázdný řetězec, protože je to poslední chybná hodnota ve výrazu.
Logický NOT (!) operátor
Logický operátor NOT (!) je unární operátor, který vrací opačnou booleovskou hodnotu svého operandu.
Zde je syntaxe operátoru NOT:
!X
Kde X je booleovská nebo pravdivá či nepravdivá hodnota.
Zde je příklad používaného operátoru NOT:
konst a = 5;
konst b = '';
konst c = skutečný;konst vysledek_1 = !a;
řídicí panel.log (vysledek_1); // Nepravdivékonst vysledek_2 = !b;
řídicí panel.log (vysledek_2); // skutečný
konst vysledek_3 = !c;
řídicí panel.log (vysledek_3); // Nepravdivé
Ve výše uvedeném příkladu vrací operátor NOT převrácenou hodnotu booleovských operandů. Když použijete operátor NOT v jiných než booleovských kontextech (výsledek_1 & výsledek_2), převádí pravdivé hodnoty na převrácenou hodnotu skutečný a převede falešné hodnoty na převrácenou hodnotu Nepravdivé.
Nullish Coalescing (??) operátor
Nulový slučovací operátor je logický operátor, který vyhodnocuje dva operandy a vrací první operand, pokud není nula nebo nedefinováno. V opačném případě vrátí druhý operand.
Na první pohled se může nulový slučovací operátor zdát totožný s logickým operátorem OR (||), ale není tomu tak. Klíčovým rozdílem je, že operátor OR vrátí operand na pravé straně, pokud je levý operand „jakákoli“ falešná hodnota, nejen nula nebo nedefinováno.
Poskytuje stručný způsob výběru výchozí hodnoty při setkání nula nebo nedefinováno hodnoty.
Zde je syntaxe nulového operátoru koalescence:
X?? y
Zde je příklad používaného nulového koalescenčního operátoru:
konst jméno = nula;
konst defaultName = "John Doe";konst vysledek_1 = jmeno?? defaultName;
řídicí panel.log (vysledek_1); // "John Doe"konst věk = 0;
konst výchozíVěk = 25;
konst výsledek_2 = věk?? defaultAge;
řídicí panel.log (vysledek_2); // 0
Ve výše uvedeném příkladu výsledek_1 vrátí „John Doe“, protože první operand měl hodnotu nula. výsledek_2 se vrací 0 protože i když je to falešná hodnota, není ani jedna nula ani nedefinováno.
Používání logických operátorů ve vašem kódu
Logické operátory se běžně používají k zápisu podmíněných příkazů, přiřazení výchozích hodnot nebo přepínání booleovských hodnot na základě podmínek.
Využitím těchto logických operátorů můžete napsat výstižnější a výraznější kód, který zvládne různé scénáře založené na pravdivosti nebo nepravdivosti hodnot.