Úvod do úlohy

Když píšeme programy, často pracujeme se vzorcem typu „vezmi stávající hodnotu a přičti k ní něco navíc“. Pokud bychom pokaždé psali plný tvar x = x + y;, byl by kód zbytečně dlouhý a méně přehledný. Proto JavaScript (a většina dalších jazyků) nabízí zkrácené přiřazovací operátory, které spojují aritmetickou operaci s přiřazením do jediné konstrukce. Díky nim se kód zkracuje, je čitelnější a působí profesionálně.


Teorie a principy

Zkrácené přiřazovací operátory fungují tak, že:

je vždy ekvivalentní zápisu

K dispozici jsou zejména tyto:

  • += … přičtení: x += y ↔ x = x + y

  • -= … odečtení: x -= y ↔ x = x - y

  • *= … násobení: x *= y ↔ x = x * y

  • /= … dělení: x /= y ↔ x = x / y

  • %= … zbytek po dělení: x %= y ↔ x = x % y

Výhodou je nejen kratší zápis, ale také jasné vyjádření úmyslu – z kontextu je hned patrné, že měníme proměnnou „sama se sebou“.


Praktické příklady kódu

Základní použití

Použití v cyklu

Při práci s textem (konkrétně +=)


Typické chyby / záludnosti

  • Záměna významu: Někteří studenti si myslí, že x += y je nový speciální operátor, ale je to jen zkrácený zápis již známého x = x + y.

  • Použití s nevhodnými typy:

    • += s číslem a textem způsobí řetězení řetězců, ne aritmetiku:

    • -= s číslem a textem způsobí převod textu na číslo:
  • Nepřehlednost při nadměrném používání: I když je zkrácený zápis úsporný, někdy je lepší napsat delší variantu pro větší srozumitelnost (např. u složitých výrazů).


Shrnutí

  • Zkrácené přiřazovací operátory kombinují aritmetiku a přiřazení.

  • x += y je totéž co x = x + y (a obdobně pro -=, *=, /=, %=).

  • Výhoda: kratší a přehlednější zápis.

  • Pozor na chování s řetězci a na příliš komplikované výrazy, kde by kratší varianta mohla být méně čitelná.