Short-circuit vyhodnocování

AndreaAndrea

Short-circuit (zkrácené, či McCarthyho) vyhodnocení je způsob vyhodnocování, který se používá u logických operátorů tak, že pokud lze z prvních částí výrazu určit konečný výsledek, není potřeba vyhodnocovat celý výraz. Použivá se převážně v logických operátorech && a || v podmínkách.

Short-circuit zvyšuje výkon a efektivitu programu, zejména v případech, kdy vyhodnocovat celý výraz by bylo zbytečné nebo by to dokonce vedlo k chybám.

Operátor AND

Při použití operátoru && JavaScript nejdříve vyhodnotí levá strana výrazu. Pokud je výsledek false, vrátí tuto hodnotu a není potřeba vyhodnocovat pravou stranu. Pokud je výsledek true, vyhodnocuje se pravá strana výrazu a výsledek celého výrazu je roven hodnotě posledního vyhodnoceného výrazu.

Operátor OR

U operátoru || zase vyhodnocujeme operandy, dokud nenarazíme na jeden operand, který je pravdivý.

Operátor XOR

U exkluzivní nebo (XOR), není možné short-circuit použít, protože k určení výsledku jsou vždy nutné oba operandy.

Optimalizace

Z komutativního zákona, víme že pořadí operandů u některých logických operací (AND a OR) nemá vliv na výsledek operace. To znamená, že operandy mohou být libovolně přeházeny a výsledek zůstane stejný. Například, výrazy A && B a B && A jsou ekvivalentní, stejně jako výrazy A || B a B || A.

Proto se nám vyplatí uspořádávat operandy podle náročnosti vyhodnocení a začít operandem.