Úvod do úlohy

Zkrácené přiřazovací operátory vypadají na první pohled jednoduše – prostě „přičti, odečti, vynásob a ulož zpět“. Jakmile je ale začneme kombinovat s různými datovými typy nebo speciálními situacemi (např. záporná čísla), ukáže se, že jejich chování není vždy tak přímočaré. Proto je důležité nejen znát jejich základní princip, ale také rozumět tomu, jak fungují v nuancích – například při spojování čísel a textů, nebo při zbytku po dělení záporných hodnot.


Teorie a principy

  1. Operátor += a typy hodnot:

    • Pokud se oba operandy chovají jako čísla, provede se aritmetické sčítání.

    • Pokud je alespoň jeden operand řetězec, dojde ke konkatenaci (spojení řetězců).

  2. Operátor -= , *= a /=:

    • Tyto operátory se pokouší převést operandy na čísla.

    • Pokud je operand text, který nelze převést, vznikne NaN (Not a Number).

  3. Operátor %= (modulo – zbytek po dělení):

    • Vrací zbytek po celočíselném dělení.

    • V JavaScriptu není modulo vždy „kladné“, protože výsledek má stejný znaménko jako dělenec (levý operand).


Praktické příklady kódu

+= a řetězce

Převody na čísla

%= se zápornými hodnotami


Typické chyby / záludnosti

  • Neočekávaná konkatenace: studenti čekají, že 5 += "5" bude 10, ale ve skutečnosti vznikne řetězec "55".

  • Výsledek modula se zápornými čísly: mnoho studentů předpokládá, že zbytek je vždy kladný, ale v JavaScriptu se řídí znaménkem dělence.

  • NaN při převodu: pokud dojde k neplatnému převodu textu na číslo (např. "abc"), dostaneme NaN, což může dál „otrávit“ výpočty.


Shrnutí

  • += funguje nejen pro čísla, ale i pro řetězce – v tom případě dochází ke konkatenaci.

  • -=, *=, /= se snaží převést hodnoty na čísla – pokud to nejde, výsledkem je NaN.

  • %= vrací zbytek po dělení se znaménkem podle dělence.

  • Nuance těchto operátorů jsou důležité hlavně při práci s daty, která nemusí být vždy jen čísla.