Úloha 5 – Refaktoring podmínek: predikáty, guard clauses a short-circuit

Řešení úlohy

Co je zde splněno

  • Všechny podmínky používají striktní porovnání a explicitní převody (Number(...), Number.isFinite).

  • Zavedeno několik guard clauses pro rychlé ukončení a jasnou logiku.

  • Odstraněna magická čísla – nahrazena pojmenovanými konstantami.

  • Testy jsou seřazeny od levných k nákladným; využito krátké vyhodnocování.

  • Složitější logika byla rozdělena do pojmenovaných predikátů s krátkými komentáři „proč“.

  • Řazení probíhá česky pomocí localeCompare('cs', {sensitivity: 'base'}).

Poznámky

  • NaN se nikdy nesrovnává pomocí ===; použijte Number.isFinite (nebo Number.isNaN) po explicitním převodu.

  • localeCompare je stabilní způsob, jak řešit diakritiku a různé varianty písmen bez ohledu na velikost.