Výuka JavaScriptu – 8.

Dnes nás čeká závěrečný díl o objektech. Představíme si zbylé objekty Date a Math a provedeme stručné shrnutí toho, co jsme si o objektech řekli.

V pátém dílu jsme s objekty začali a vysvětlili si základní pojmy, v šestém dílu jsme si řekli něco víc o vlastnostech a metodách objektů, vestavěných objektech a hlavním objektu window. Sedmý díl navázal s objekty frame, document, image, link a form. A jak už jste si mohli přečíst v úvodu dnes nás čeká o seznámení s objekty Date a Math plus stručné shrnutí poznatků o objektech.

Objekt Date

S objektem Date jste se mohli v průběhu seriálu setkat již několikrát, například v šestém dílu. Někdy jsou s tímto objektem v začátcích spojeny určité problémy a tak si ho vysvětlíme o něco podrobněj než ostatní.

Hodnota času je v objektu Date uložena jako počet milisekund od počátku. Tento počátek je stanoven na 1.1.1970 greenwichského času. Je zde použit standard z UNIXu, kde se toto datum často označuje jako epocha, protože krátce předtím byl systém UNIX poprvé představen počítačovému světu.

Jistě jste již všichni určitě pochopili, že objekt Date slouží ke zjišťování informací o datu a čase. Úplně nejjednodušší použití vypadá takto:

<script type="text/javascript">
<!--
document.write(Date());
//-->
</script>

Jako informace se vám v prohlížeči zobrazí:

Mon Jan 28 18:16:12 2002
Další možný zápis, kdy objektu předáváme určité datum:
var datum=new Date("October 12, 1988 13:14:00") //Vynecháte-li hodiny, minuty 
nebo sekundy hodnota bude nastavena na nulu.
var datum=new Date("October 12, 1988")
var datum=new Date(88,09,12,13,14,00)
var datum=new Date(88,09,12)
var datum=new Date(500) //Čas od počátku v milisekundách.

Informace o čase sice máme, ale pro běžnou praxi nejsou moc využitelné. Jsou anglicky a ani výstup nepatří mezi nejpřehlednější. Naštěstí existuje celá řada metod (vlastnosti nejsou), které nám práci s datem a časem usnadní. Ovšem předtím, než tyto metody můžeme použít je nutné objekt Date vytvořit pomocí zápisu, který již dobře známe:

var datum = new Date();

Metody, které nyní již na objekt můžeme použít jsou:

  • getNěco() - zobrazí například den v měsíci, minuty, rok.
  • setNěco() - nastavíme například den v měsíci, minuty, rok.
  • UTC() - metoda vrací počet milisekund uplynulých od počátku, který se vždy chápe jako greenwichský čas.
    Date.UTC(rok,měsíc,datum,hodiny,minuty,vteřiny);
  • parse() - metoda vrací počet milisekund uplynulých od počátku do místního času.
    Date.parse("měsíc_ENG, den_v_měsíci, Rok Hod:Min:Sec");
    <script type="text/javascript">
    <!-- 
    document.write(Date.UTC(2002, 11, 24, 12, 0, 0) +"<br>"); //Všimněte si časů!
    document.write(Date.parse("December, 24, 2002 13:00:00"));
    //--> 
    </script>
  • toGMTString() a toLocaleString() - Konvertuje datum na řetězec zachovávající Internet GMT konvence nebo lokální konvence pro zobrazení datumu a času.
    <script type="text/javascript">
    <!--
    var datum  = new Date(); // vytvoří objekt datum obsahující aktuální datum a čas
    var GMT = datum.toGMTString();
    var mistni_cas = datum.toLocaleString();
    document.write("Date():" +  datum +"<BR>GMT: " + GMT + 
    "<BR>Místní čas: " + mistni_cas);
    //-->
    </script>
  • getTimetzoneOffset() - vrací časový posun lokálního (místního) časového pásma v minutách.
    <script type="text/javascript">
    <!--
    var datum = new Date();
    document.write(datum.getTimezoneOffset());
    //-->
    </script>

Jednotlivé metody get a set se v syntaxi moc neliší a proto si probereme pouze get metody:

Metoda Význam NN IE ECMA
getDate() Vrací den v měsíci (1-31). 2.0 3.0 1.0
getDay() Vrací den v týdnu (0-6, kde 0=neděle). 2.0 3.0 1.0
getMonth() Vrací měsíc (0-11). 2.0 3.0 1.0
getYear() Vrací rok. Více v tabulce níže. 2.0 3.0 1.0
getFullYear() Vrací letopočet v kompletní čtyřmístné podobě. 4.0 4.0 1.0
getHours() Vrací hodiny (0-23). 2.0 3.0 1.0
getMinutes() Vrací minuty (0-59). 2.0 3.0 1.0
getSeconds() Vrací sekundy (0-59). 2.0 3.0 1.0
getTime() Vrací počet milisekund, které uběhly od 1.ledna 1970 (počátku). 2.0 3.0 1.0

Poznámka: Všechny metody vracejí číslo, ne textový řetězec! Při používáni těchto metod je nutné názvy metod zapsat správně včetně velkých a malých písmen.

Protože s přechodem na rok 2000 se vyskytly problémy a každý výrobce prohlížeče je řeší trochu odlišně máte zde tabulku, kde najdete návratové hodnoty pro metody getYear() a getFullYear().

Prohlížeč getYear() 1998 getYear() 2000 getFullYear()
Netscape 2 Windows 98 100 nepodporuje
Netscape 2 Mac 98 100 nepodporuje
Netscape 3 Windows 98 2000 nepodporuje
Netscape 3 Mac 98 2000 nepodporuje
Netscape 3 Linux 2000 nepodporuje
Explorer 3 Windows 98 100 nepodporuje
Explorer 3 Mac 98 2000 2000
Opera 3 Windows 98 100 nepodporuje
Netscape 4 Windows 98 100 2000
Netscape 4 Mac 98 100 2000
Netscape 4 Linux 98 100 2000
Netscape 4 Solaris 98 100 2000
Explorer 4 Windows 98 2000 2000
Explorer 4 Mac 98 2000 2000
Opera 4 Windows 98 100 2000
Opera 4 Linux 98 100 2000
Konqueror 100 2000
Explorer 5 Windows 98 2000 2000
Explorer 5 Mac 98 2000 2000
Explorer 5 Solaris 2000 2000
Netscape 6 Windows 98 100 2000
Netscape 6 Mac 98 100 2000
Netscape 6 Linux 98 100 2000

Objekt Math

Tento objekt obsahuje řadu matematických funkcí (metod a vlastností), které se dají při některých výpočtech využít. Následující tabulka ukazuje ty nejdůležitější:

Metody
Název Popis
abs() Vrací absolutní hodnotu zadaného čísla.
acos() Vrací arcus kosinus zadaného čísla v radiánech.
asin() Vrací arcus sinus zadaného čísla v radiánech.
atan() Vrací arcus tangens zadaného čísla v radiánech.
cos() Vrací kosinus zadaného úhlu.
exp() Vrací hodnotu ex, kde x je zadané číslo.
log() Vrací přirozený logaritmus zadaného čísla.
max(x,y) Vrací větší ze dvou zadaných čísel.
min(x,y) Vrací menší ze dvou zadaných čísel.
pow(x,y) Vrací mocninu xy, kde x a y jsou zadaná čísla.
random() Vrací náhodné číslo v rozsahu 0 až 1.
round() Vrací zaokrouhlenou hodnotu zadaného čísla.
sin() Vrací sinus zadaného úhlu.
sqrt() Vrací odmocninu zadaného čísla.
tan() Vrací tangens zadaného čísla.

Vlastnosti
Název Popis
E Eulerovo číslo (2,718281828459045).
PI Ludolfovo číslo (3,141592653589793).
LN2 Přirozený logaritmus čísla 2 (0,6931471805599453).
LN10 Přirozený logaritmus čísla 10 (2.302585092994046).
SQRT1_2 Odmocnina z 0,5 (0,7071067811865476).
SQRT2 Odmocnina ze dvou (1,4142135623730951).

Příklady:

document.write(Math.round(8.6));
document.write(Math.random());
document.write(Math.PI);

Hody kostkou:

<script type="text/javascript">
<!--
var  kostka;
kostka = Math.random();
kostka = Math.round(kostka*5)+1;
document.write(kostka);
//-->
</script>

Po čtyřech lekcích věnovaných objektům si snad pamatujete výraz objektový model dokumentu. Dále, že objekty můžou obsahovat další objekty a proměnné, kterým říkáme vlastnosti a že objekt v sobě má zabudovanou sadu funkcí, kterým říkáme metody. Umíte vytvořit nový objekt a pokud někde uvidíte tečku, řeknete si "tečková" notace tu znám a umím s ní pracovat.

Příště začneme novou část "Práce s okny a rámy".

Váš názor Další článek: Softwarová kriminalita u nás roste

Témata článku: Software, Windows, Linux, Programování, Opera, Javascript, Java, Výuka, Sinus, Určitý objekt, Náhodné číslo, Arcus, Určité datum, Tolo, Pre, Nn, December, Epocha, October


Určitě si přečtěte

USA rozdávají chudým dotované telefony s Androidem. Jsou z Číny a plné virů

USA rozdávají chudým dotované telefony s Androidem. Jsou z Číny a plné virů

** Chudí Američané mohou dosáhnout na dotovaný mobil ** Jeden takový rozdává třeba tamní Virgin Mobile ** Má to jeden háček. Je prošpikovaný malwarem

Jakub Čížek | 42

Nejlepší notebooky do 20 000 Kč. Tipy, co se dnes vyplatí koupit

Nejlepší notebooky do 20 000 Kč. Tipy, co se dnes vyplatí koupit

** S cenou do 20 tisíc lze vybrat solidní notebook na práci i hry ** Přenosné notebooky nabídnou i kovová těla a rychlý hardware ** Na hraní se hodí více peněz, ale na použitelný základ dvacet tisíc stačí

Tomáš Holčík, David Polesný | 49

Měření rychlosti internetu: Populární Speedtest.net neřekne o skutečné rychlosti internetu téměř nic

Měření rychlosti internetu: Populární Speedtest.net neřekne o skutečné rychlosti internetu téměř nic

** Speedtest stále častěji měří jen rychlost na poslední míli ** Ta však ale neodpovídá reálnému surfování ** Jak se tedy pokusit změřit tu skutečnou?

Jakub Čížek | 85

Biblická potopa Česka: Jak bychom dopadli, kdyby nás zatopil oceán

Biblická potopa Česka: Jak bychom dopadli, kdyby nás zatopil oceán

** Představte si biblickou potopu ** Nejprve zaniknou Děčín a Břeclav, pak i Brno a Praha ** Hlavním městem se stane Jihlava a zbytky Čechů přežijí na Kvildě

Jakub Čížek | 93



Aktuální číslo časopisu Computer

Test 9 bezdrátových reproduktorů

Jak ovládnout Instagram

Test levných 27" herních monitorů

Jak se zbavit nepotřebných věcí na internetu