Úloha 3 – Použití objektů Date a Math v praxi
Ú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+1zajistí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.randombez 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í sMath.floor()neboMath.round(). -
Nesprávné pořadí operací
– Pokud chceme náhodné číslo v rozsahu1–10, musíme psátMath.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()agetDay()
–getDate()vrací den v měsíci, zatímcogetDay()den v týdnu.
Shrnutí
-
Objekt
Mathslouží k matematickým operacím, zaokrouhlování a generování náhodných čísel. -
Objekt
Dateposkytuje 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í.