Úloha 5 – Typické chyby při přiřazování a jak je opravit
Úloha
Zadání (kontext úlohy)
Pracuj v čistém souboru script.js a u každého bodu:
-
napiš kód,
-
do konzole vypiš co a proč se stalo,
-
pokud je to chybné použití, oprav ho a ukaž správný výsledek.
1. Přiřazení v podmínce
-
Máš kód s proměnnou
wins. -
V podmínce je omylem použito přiřazení místo porovnání.
-
Ukaž, co to udělá a proč.
-
Oprav na striktní porovnání (
===).
2. Řetězení přiřazení
-
Inicializuj
x,y,ztak, že jedním zápisem nastavíš všechny na 10. -
Poté proveď
y += 5. -
Vypiš hodnoty
x,y,za vysvětli, proč vyšly právě tak (řetězení se vyhodnocuje zprava doleva). -
Přepiš inicializaci na srozumitelnější podobu (bez řetězení).
3. += a řetězce
let count = 10; let input = "5";- Proveď
count += inputa ukaž, co se stalo s typem a hodnotou. -
Oprav tak, aby proběhlo číselné sčítání (např.
count += Number(input)).
4. *= a NaN
let base = "10px";-
Proveď
base *= 2, ukaž výsledek a vysvětli, proč vznikneNaN(řetězec nelze přímo násobit). -
Oprav tak, aby výpočet dal číslo (např.
parseInt(base, 10) * 2).
5. Neinicializovaná vlastnost
let user = {};-
Zkus
user.points += 1a ukaž výsledek (výjdeNaN, protožepointsjeundefined). -
Oprav tak, aby
pointszačínalo od 0 a po zvýšení mělo správnou hodnotu.
Cíl úlohy
-
Rozlišit přiřazení a porovnání a umět chybu odhalit i vysvětlit.
-
Pochopit vyhodnocování řetězení přiřazení (zprava doleva).
-
Umět pracovat s přetypováním u
+=,*=,%=a předejítNaN. -
Správně inicializovat hodnoty před aritmetikou.
Vstupní podmínky
-
Startovní soubor
script.js. -
Smíš upravovat a doplňovat kód pouze podle zadání.
Požadovaný výstup
-
Ke každému bodu bude v konzoli:
-
původní chování + krátké vysvětlení,
-
opravená verze se správným výsledkem.
-
Doplňující pokyny
-
Preferuj
===před==. -
U číselných vstupů ze stringu použij
Number(),parseInt(str, 10)neboparseFloat(). -
Nepoužívej
var. -
Piš krátké, výstižné komentáře k vysvětlení.