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.