Úvod do úlohy
Po zvládnutí základních funkcí, které pracují s čísly a texty, se studenti seznámí s dvojicí velmi důležitých vestavěných objektů – Math a Date. Tyto objekty patří k nejčastěji používaným v JavaScriptu, protože umožňují provádět výpočty, generovat náhodná čísla, získávat aktuální datum a čas nebo s nimi dále programově pracovat.
Díky nim dokáže JavaScript snadno zpracovávat různé matematické a časové operace, aniž by programátor musel psát vlastní složité algoritmy. Oba objekty jsou přístupné automaticky – není potřeba je nijak importovat ani vytvářet zvláštním způsobem.
Objekt Math – matematické operace a konstanty
Objekt Math obsahuje mnoho užitečných funkcí a konstant pro běžné i pokročilejší výpočty. Používá se pro zaokrouhlování, výpočty s mocninami, odmocninami, hodnotami sinusů či kosinů, a také pro generování náhodných čísel.
Na rozdíl od jiných objektů se Math nevytváří pomocí new – prostě se použije přímo:
Přehled nejpoužívanějších metod
| Metoda |
Popis |
Příklad |
Výsledek |
Math.round(x) |
Zaokrouhlí číslo na nejbližší celé číslo |
Math.round(4.6) |
5 |
Math.floor(x) |
Zaokrouhlí dolů |
Math.floor(4.9) |
4 |
Math.ceil(x) |
Zaokrouhlí nahoru |
Math.ceil(4.1) |
5 |
Math.abs(x) |
Vrátí absolutní hodnotu čísla |
Math.abs(-7) |
7 |
Math.pow(a, b) |
Umocní číslo a na exponent b |
Math.pow(2, 3) |
8 |
Math.sqrt(x) |
Vrátí druhou odmocninu |
Math.sqrt(16) |
4 |
Math.max(a, b, …) |
Vrátí největší číslo z výčtu |
Math.max(4, 8, 2) |
8 |
Math.min(a, b, …) |
Vrátí nejmenší číslo z výčtu |
Math.min(4, 8, 2) |
2 |
Math.random() |
Vrátí náhodné číslo mezi 0 (včetně) a 1 (ne včetně) |
Math.random() |
např. 0.37 |
Příklad: Generování náhodného čísla a jeho zaokrouhlení
Zde vidíme kombinaci dvou metod:
-
Math.random() – vytvoří náhodné desetinné číslo,
-
Math.floor() – převede ho na celé číslo dolů, přičtením +1 zajistíme rozsah od 1.
Příklad: Porovnání a zaokrouhlování hodnot
Typické chyby u objektu Math
-
Chybějící závorky při volání metody
– Např. Math.random bez závorek pouze odkazuje na funkci, ale nespustí ji.
-
Zapomenuté zaokrouhlení při generování celých čísel
– Math.random() vrací desetinné číslo, které je nutné upravit kombinací s Math.floor() nebo Math.round().
-
Nesprávné pořadí operací
– Pokud chceme náhodné číslo v rozsahu 1–10, musíme psát Math.floor(Math.random() * 10) +
1, nikoli naopak.
Objekt Date – práce s časem a datem
Objekt Date se používá k získávání a zpracování informací o čase a datu. Lze s ním číst aktuální datum, zjišťovat konkrétní části (den, měsíc, rok, hodinu), ale i porovnávat časy nebo měřit délku trvání událostí.
Vytvoření objektu probíhá pomocí konstruktoru:
Tento objekt obsahuje aktuální systémové datum a čas.
Získávání částí datumu
| Metoda |
Popis |
Příklad |
Výsledek (např.) |
getFullYear() |
Rok |
ted.getFullYear() |
2025 |
getMonth() |
Měsíc (0–11) |
ted.getMonth() |
9 (říjen) |
getDate() |
Den v měsíci (1–31) |
ted.getDate() |
7 |
getDay() |
Den v týdnu (0–6, neděle = 0) |
ted.getDay() |
2 |
getHours() |
Hodina |
ted.getHours() |
14 |
getMinutes() |
Minuta |
ted.getMinutes() |
30 |
getSeconds() |
Sekunda |
ted.getSeconds() |
5 |
Příklad: Zobrazení aktuálního data
Příklad: Měření času mezi dvěma událostmi
Tento příklad ukazuje, že objekt Date lze použít nejen pro zobrazení, ale i pro měření časových intervalů.
Typické chyby u objektu Date
-
Záměna indexu měsíce
– Měsíce se počítají od nuly (0 = leden, 11 = prosinec), proto je často nutné přičíst +1.
-
Chybné formátování výstupu
– Metody vracejí čísla, která je třeba převést na text, doplnit nulami nebo znaky (např. 07.10.2025).
-
Zapomenutý rozdíl mezi getDate() a getDay()
– getDate() vrací den v měsíci, zatímco getDay() den v týdnu.
Shrnutí
-
Objekt Math slouží k matematickým operacím, zaokrouhlování a generování náhodných čísel.
-
Objekt Date poskytuje informace o aktuálním čase, umožňuje měřit délku událostí a vytvářet formátovaný výstup datumu.
-
Oba objekty jsou součástí základní výbavy JavaScriptu a není třeba je importovat ani vytvářet ručně.
-
Umět je používat znamená umět psát efektivní, přehledný a univerzální kód, který zvládá výpočty i práci s časem bez zbytečných komplikací.