Použití && a || mimo if klauzuli v JavaScriptu
Při zápisu podmínky v if
klauzuli jste možná použili operátory &&
a ||
. Věděli jste ale, že v jazyce JavaScript se vyhodnocují na hodnoty výrazů, jako jsou řetězce a čísla, místo na logické hodnoty true
a false
?
To vám umožňuje používat operátory &&
a ||
ve výrazech mimo if
-clause. Poskytuje zkrácené způsoby vyjádření předčasného ukončení pomocí &&
a vyjádření výchozí hodnoty pomocí ||
.
If-clause pracuje s pravdivostními a falešnými hodnotami
To, že operátory &&
a ||
vyhodnocují řetězce a čísla, neporušuje if
-clause, protože podmínky se v JavaScriptu vyhodnocují jinak.
Místo toho, aby se if
-clause rozhodovala o svém dalším postupu podle toho, zda je podmínka true
nebo false
, rozhoduje se podle toho, zda je podmínka pravdivá nebo falešná.
Definice je
Hodnota je falešná, pokud je
false
,null
,undefined
,''
,0
neboNaN
. Pravdivá hodnota je jakákoli hodnota, která není považována za falsy.
Použijeme tuto informaci.
Použijeme && pro bezpečnou ochranu před nedefinovanými
Běžnou situací je přístup k vnořeným vlastnostem objektu pomocí tečkové notace. Například request.session.id
. V takovém případě, pokud je některý objekt na cestě undefined
, dojde k chybě „Uncaught TypeError:
Chybě se lze vyhnout použitím &&
pro bezpečnou ochranu před neurčitostí.
V tomto případě se výraz bezpečně vyhodnotí na undefined
, aniž by vyhodil chybu.
Definice pro &&
je
Operátor
&&
se vyhodnotí na levostranný výraz, pokud je falsy, jinak na pravostranný výraz.
Použití || pro poskytnutí výchozí hodnoty
Dalším častým případem použití je načtení hodnoty, a pokud neexistuje, pak použití výchozí hodnoty.
Toho lze dosáhnout pomocí ||
-operátoru.
Definice pro ||
je
Operátor
||
vyhodnocuje výraz na levé straně, pokud je pravdivý, jinak výraz na pravé straně.
Čitelnost
Tyto dva nové nástroje jsou příjemným doplňkem vaší sady nástrojů. Ale jako vždy je na prvním místě čitelnost. Používejte je s rozumem tam, kde se nejlépe hodí. Nezapomeňte se ujistit, že všichni ve vašem týmu vědí, jak je používat, například tím, že jim předáte tento článek.