Ú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 číslo 0 mohou 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ů.