Ú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, z tak, že jedním zápisem nastavíš všechny na 10.

  • Poté proveď y += 5.

  • Vypiš hodnoty x, y, z a 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 += input a 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č vznikne NaN (ř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 += 1 a ukaž výsledek (výjde NaN, protože points je undefined).

  • Oprav tak, aby points začí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ít NaN.

  • 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) nebo parseFloat().

  • Nepoužívej var.

  • Piš krátké, výstižné komentáře k vysvětlení.