Úloha 4 – Refaktoring podmínek s vedlejšími efekty
Úvod do úlohy
Když už studenti zvládnou logické operátory a jejich kombinace, je důležité zaměřit se na odhalování a opravování chyb. Logické výrazy totiž patří k místům, kde se začátečníci často pletou – jednak kvůli složitosti podmínek, jednak kvůli nejasnostem v prioritách operátorů nebo chování short-circuit evaluace. Umět chyby nejen poznat, ale i vysvětlit, proč k nim dochází, je skvělý krok k tomu, aby psali spolehlivý a čitelný kód.
Teorie a principy
-
Nesprávná negace: Negace
!musí být aplikovaná na správnou část výrazu. Bez závorek často dojde k jinému výsledku, než autor zamýšlel. -
Chybějící závorky při kombinaci operátorů: Přestože JavaScript má jasně danou prioritu (
!>&&>||), v dlouhých podmínkách je snadné se splést. -
Ignorování short-circuit evaluace: Někdy se spoléháme, že se vyhodnotí všechny části podmínky, ale některé funkce nebo výrazy se přeskočí. To může vést k chybějícím vedlejším efektům.
-
Nepřehledné řetězení podmínek: Pokud má výraz více než 2–3 operátory bez rozdělení nebo komentářů, snadno se ztratí logika.
Praktické příklady chyb a oprav
1. Chybná negace
2. Zapomenuté závorky při kombinaci
3. Ignorování short-circuit chování
Typické chyby / záludnosti
-
Záměna
=za==nebo===v podmínkách (místo porovnání dojde k přiřazení). -
Příliš složité podmínky na jeden řádek – i když jsou syntakticky správné, špatně se čtou a snadno se v nich udělá chyba.
-
Špatné chápání negace u složených výrazů – studenti často zapomenou, že
!(a && b)není totéž co!a && b. -
Neuvědomění si truthy/falsy hodnot – například prázdný řetězec
""nebo číslo0mohou způsobit opačné vyhodnocení, než začátečník čeká.
Shrnutí
-
Dávej pozor na to, kam přesně umisťuješ negaci
!. -
Používej závorky k jasnému vyjádření logiky a nezávislost na prioritě operátorů.
-
Pamatuj, že short-circuit evaluace může přeskočit části kódu (např. volání funkcí).
-
U složitých podmínek se vyplatí rozdělení na menší kroky nebo využití mezivýsledků.