Úloha 4 – Refaktoring podmínek s vedlejšími efekty
Úloha
Zadání (kontext úlohy)
Spravuješ skript, který rozhoduje, zda odeslat newsletter uživateli. V kódu jsou chyby v negacích, závorkách a ve způsobu volání funkce se side-effectem (zápis do logu). Tvým úkolem je podmínky opravit a zpřehlednit.
Cíl úlohy
Procvičíš si správné použití logických operátorů &&, ||, !, závorek a pochopíš, kdy se druhá část výrazu nemusí vyhodnotit (short-circuit).
Vstupní podmínky
-
Pracuješ s přiloženým souborem
script.js.
Požadovaný výstup
-
Oprav logiku tak, aby se newsletter odeslal pouze tehdy, když platí všechno z následujícího:
-
uživatel je potvrzen (
potvrzen === true), -
má ověřený e-mail (
overenEmail === true), -
není odhlášen (
odhlasen === false), -
má souhlas se zasíláním (
maSouhlas === true).
-
-
Zajisti, aby se funkce
zapisAktivitu()vždy zavolala před rozhodnutím (mimo podmínku), aby ji nepřeskočilo zkrácené vyhodnocování. -
Použij závorky pro jasnou a čitelnou logiku.
-
Přidej proměnnou
maSouhlas(boolean) a zahrň ji do rozhodování – bez souhlasu se nikdy neodesílá.
Doplňující pokyny
-
Dávej pozor, co neguješ – operátor
!aplikuj na přesně tu část, kterou chceš popřít (např.!odhlasen). -
Pokud je podmínka delší, rozděl ji na více řádků nebo si připrav mezivýsledky.
-
Nepoužívej
==, preferuj===/!==. -
Nespoléhej na vyhodnocení uvnitř
ifs voláním funkce; side-effecty dělej mimo podmínku.