Úloha 1 – Inkrementace a dekrementace – prefix vs. postfix
Úvod do úlohy
Bez aritmetiky by žádný program nebyl úplný. Potřebujeme sčítat, odčítat, násobit, dělit a pracovat se zbytkem po dělení. Tyto operace patří mezi vůbec nejčastější, a proto je nezbytné, aby jim studenti rozuměli do hloubky. V JavaScriptu je práce s aritmetickými operátory na první pohled jednoduchá – ale skrývá v sobě i některé záludnosti, zejména proto, že stejný operátor + slouží jak pro sčítání čísel, tak pro spojování řetězců. Porozumění těmto nuancím je klíčem k psaní spolehlivého kódu.
Teorie a principy
JavaScript nabízí pět základních aritmetických operátorů:
-
+… sčítání (nebo konkatenace řetězců) -
-… odčítání -
*… násobení -
/… dělení (vrací desetinné číslo, není to celočíselné dělení) -
%… zbytek po dělení (modulo)
Chování + závisí na typu operandů:
-
Pokud jsou oba operandy čísla → provede se sčítání.
-
Pokud je alespoň jeden operand řetězec → provede se spojení řetězců (string concatenation).
Příklady:
-
2 + 3→5 -
"2" + 3→"23" -
2 + "3"→"23"
Další operátory (-, *, /, %) se snaží své operandy převést na čísla. Pokud převod selže, výsledkem je NaN (Not a Number).
Praktické příklady kódu
Typické chyby / záludnosti
-
Neočekávaná konkatenace:
5 + "5"vrací"55", ne10. To je častý zdroj nedorozumění. -
Zbytek po dělení se zápornými čísly:
-10 % 3vrací-1(znaménko se řídí podle levého operandu). -
Dělení nulou:
5 / 0vracíInfinity(ne vyvolání chyby). -
NaN při špatném převodu:
10 - "abc"vracíNaN.
Shrnutí
-
V JavaScriptu máme základní operátory:
+,-,*,/,%. -
Operátor
+funguje jak pro sčítání čísel, tak pro spojování řetězců. -
Ostatní operátory pracují jen s čísly a při nevhodném typu operandů vracejí
NaN. -
Pozor na speciální situace: dělení nulou (
Infinity), zbytek u záporných čísel, nechtěnou konkatenaci.