Pro práci s řetězci má JavaScript vestavěný objekt string. Ten má definováno několik metod a jednu vlastnost. Obecný zápis vypadá takto:
string.metoda
string.vlastnost
kde metoda může nabývat například hodnotu: substring() - vrací část řetězce definovanou číslem prvního a posledního znaku, toLowerCase() - převede řetězec na malá písmena, toUpperCase() - převede řetězec na velká písmena. Vlastnost může nabývat hodnoty length - zjistí délku řetězce, přičemž hodnotou této vlastnosti je číslo. Příklady použití objektu string:
Znacka = "Škoda Rapid";
document.write(Znacka.length);
// Vypíše délku řetězce, tj. 11
document.write(Znacka.substring(6,9));
// Vypíše Rap, čísluje se od 0!
Velka = Znacka.toUpperCase();
document.write(Velka);
// Vypíše ŠKODA RAPID
Mala = Znacka.toLowerCase();
document.write(Mala);
// Vypíše škoda rapid
viz ukázka .
Řetězec vypisovaný pomocí document.write lze formátovat značkami (X)HTML zapsanými v uvozovkách. Například použitím následujícího kódu se vypíše tučný text Škoda Rapid.
Znacka = "Škoda Rapid";
document.write("<b>",Znacka,"</b>");
Každá textová proměnná je vlastně objektem typu string. Pokud vytváříte nový objekt, musíte používat klíčové slovo new. To ovšem neplatí právě pro objekty typu string.
Metoda | Popis |
anchor() | Převádí text na hypertextový odkaz s atributem NAME . Ten bude shodný s parametrem této metody. |
big() | Přidává značky <big> a </big> |
bold() | Tučný text - přidává značky <b> a </b>. |
charAt() | Vrací n-tý znak řetězce.
Hodnota n nesmí být menší než nula a větší než skutečný počet znaků řetězce-1. Např: string.charAt(n). |
fontcolor() | Přidává značku pro barevné zvýraznění textu.
Přitom barva je uvedena jako parametr metody ve formátu RGB. Např: string.fontcolor(RRGGBB). |
fontsize() | Nastavuje velikost textu. Ta je uvedena jako
parametr metody a může se pohybovat v rozmezí od 1 do 7. Např: string.fontsize(n). |
indexOf() | Tato metoda vyhledává znak (uvedený jako její
parametr) v příslušném řetězci. Hledat se začne z levé strany od začátku
do konce řetězce. Pokud je zadaný znak nalezen, metoda vrací index takového
znaku. Jestliže nalezen není, metoda vrátí číslo -1. Jako druhý parametr této metody může být uveden
index znaku od něhož se začne s prohledáváním. Např: indexOf(znak, index). |
italics() | Převádí text na kurzívu, přidává značky <i> a </i>. |
LastindexOf() | Má stejný význam jako metoda indexOf , pouze vyhledávání začne od konce řetězce. |
Link() | Podobně jako metoda anchor() i tato metoda převádí text na hypertextový odkaz, tentokrát ovšem s atributem href. Ten bude shodný s parametrem této metody. |
Small() | Přidává k textu značky <small> a </small>. |
Sub() | Přidává k textu značky <sub> a </sub>. |
Substring() | Tato metoda vrací podřetězec obsažený v příslušném
řetězci. Metoda má dva parametry. První z nich udává index znaku, od něhož
začíná požadovaný podřetězec, a druhý pak index znaku, kde podřetězec končí.
Druhý parametr musí být větší nebo roven parametru prvnímu. Parametr první
pak nesmí být menší než nula a větší, než je délka řetězce. Např: string.substring(2,4). |
Sup() | Přidává k textu značky <sup> a </sup>. |
toLowerCase() | Převede všechny znaky daného řetězce na malá písmena. |
toUpperCase() | Převede všechny znaky daného řetězce na velká písmena. |
Pro práci s datem a časem je objekt Date. Tento objekt nemá žádné vlastnosti, má pouze metody. Například document.write(Date()); vypíše datum a čas ve tvaru Mon Jan 28 12:24:07 2001. S tímto objektem však nelze pracovat obvyklým způsobem, tj. Date.metoda(). Nejprve se musí přiřadit objekt Date nějaké proměnné pomocí klíčového slova (konstruktoru) new:
Dnes = new Date();
Tím se vytvoří nová proměnná Dnes (instance objektu Date), která je vlastně novým objektem, který má stejné metody jako objekt Date. Následující příklad ilustruje využití metod getHours() a getMinutes()
Hodina = Dnes.getHours();
// V proměnné Hodina je aktuální hodina.
Minuta = Dnes.getMinutes();
// V proměnné Minuta je aktuální minuta
Pokud teď vypíšete obsah nově vytvořené instance objektu Date (tj. proměnné Dnes), dostanete např. následující řetězec Sun Jan 28 07:21:57 2001. V nové instanci objektu Date je tedy obsaženo aktuální datum, a to jak den (Sun - neděle), měsíc (Jan - leden), číslo dne (28), aktuální čas (07:21:57), tak i letopočet (2001). Pokud byste chtěli nastavit hodnotu nové instance objektu Date na jinou než aktuální hodnotu, můžete to provést hned při vytváření takové instance. Jako parametry nového objektu uvedete rok, měsíc a den ve formátu Date (rr,mm,dd):
var datum = new Date(01, 08, 28);
Nová instance objektu Date bude mít tedy hodnotu nastavenou na 28. září (pozor, v tomto případě jsou měsíce číslovány od nuly) roku 2001. Letopočet je možné zadat i ve tvaru 2001. Jak jste si jistě všimli, je také možné zadat čas ve tvaru hh:mm:ss.
var datum = new Date(2001, 08, 12, 10, 02, 03);
Než budou vyjmenovány metody objektu Date, prohlédněte si následující příklad . Je to krátký program v JavaScriptu, který do vaší stránky WWW vloží aktuální datum včetně českého jména konkrétního dne.
Jak tento program funguje? Nejprve je zapotřebí vytvořit novou instanci objektu Date . To zajišťuje hned jeho první řádek:
var datum = new Date();
Nová instance objektu Date se tedy jmenuje datum a obsahuje informace o aktuálním datu a čase. Hned na začátku je také deklarována a inicializována proměnná mesic, do níž je uloženo číslo, reprezentující aktuální měsíc. To zajišťuje metoda objektu Date se jménem get.Month().
mesic = datum.getMonth();
Proč nejsou deklarovány i proměnné pro den a rok? Není to zapotřebí, metody, které vrací tyto informace, se používají rovnou při výpisu a v těle podmínek, aniž by hodnota, kterou vrací, musela být nutně uložena v některé proměnné. K proměnné mesic je přičtena jednička (mesic++), protože měsíce jsou číslovány od nuly a nikoliv od jedničky, jak jste zvyklí. Potom už následuje sedm podmínek. Nejprve je vráceno číslo aktuálního dne - metoda getDay(). Pozor, i zde se čísluje od nuly a nula znamená nikoliv pondělí, ale neděli. Pak se vypisuje pro odpovídající číslo vždy odpovídající český název dne v týdnu (metoda write objektu document):
if (datum.getDay() = = 0) {document.write("neděle")}
V této chvíli je tedy v okně prohlížeče zobrazen český název dne. Ještě zbývá doplnit aktuální datum ve tvaru 28.9.2001, k tomu poslouží poslední řádek. Do www stránky budou postupně vložena čísla aktuálního dne, měsíce a roku. Metoda getDate() vrací číslo aktuálního dne, pak je potřeba vytisknout tečku. Číslo měsíce je již v proměnné mesic, stačí je tedy jen vypsat i s nezbytnou tečkou, poslední použitou metodou je metoda getYear(), která vrací číslo roku. Protože je však vráceno číslo pouze ve formátu rr (01) a nikoliv rrrr (2001), je zapotřebí se nejdříve ještě postarat o vypsání aktuálního století (20).
Metoda | Popis |
getDate() | Vrací číslo dne uloženého v instanci objektu Date v tomto měsíci. |
getDay() | Vrací pořadové číslo dne v týdnu uloženém v instanci objektu Date. Číslo je v rozmezí od 0 (neděle) do 6 (sobota). |
getHours() | Vrací číslo v rozmezí 0 (půlnoc) až 23, které vyjadřuje hodinu právě uloženou v instanci objektu Date. |
getMinutes() | Vrací číslo v rozmezí 0 až 59, které vyjadřuje minutu právě uloženou v instanci objektu Date. |
getMonth() | Vrací číslo v rozmezí 0 až 11, které vyjadřuje měsíc právě uložený v instanci objektu Date. |
getSeconds() | Vrací číslo v rozmezí 0 až 59, které vyjadřuje sekundu právě uloženou v instanci objektu Date. |
getTime() | Vrací číslo, které vyjadřuje počet milisekund, které uplynuly od 1. 1. 1970 do data uloženého právě v instanci objektu Date. Může sloužit při porovnávání dvou datumů. |
getTimezoneOffset() | Vrací rozdíl (v minutách) mezi datem uloženým v instanci objektu Date a GMT (Greenwichský čas). |
getYear() | Vrací rok ve tvaru rr. |
setDate(x) | Nastavení dne v měsíci pro instanci objektu date , kde x je hodnota v rozmezí 1 až 31. |
setHours(x) | Nastavení hodiny pro instanci objektu date , kde x je hodnota v rozmezí 0 (půlnoc) až 23. |
setMinutes(x) | Nastavení minut pro instanci objektu date , kde x je hodnota v rozmezí 0 až 59. |
setTime(x) | Nastavení doby, která uplynula od 1. 1. 1970 pro instanci objektu date, kde x je číslo vyjadřující počet milisekund. |
setYear(x) | Nastavení roku pro aktuální instanci objektu date , kde x je hodnota vyjadřující rok aktuálního letopočtu (01 pro 2001 atd.). |
toGMTString() | Převádí čas uložený v instanci objektu date na čas používající formát GMT. Například Sun Sep 14 11:36:47 2001 vypadá po převodu takto: Sun, 14 Sep 2001 09:36:47 GMT. |
toLocaleString() | Převádí čas uložený v instanci objektu date na místní čas. Je tedy metodou přesně opačnou k metodě toGMTString(). |
UTC() | Převádí datum a čas (v lokálním formátu) na počet milisekund od 1. 1. 1970. |
parse() | Převádí datum a čas (ve formátu GMT) na počet milisekund od 1. 1. 1970. |
Objekt Math se používá pro matematické výpočty. Například document.write(Math.sin(alfa)); vypíše hodnotu goniometrické funkce sin(a). Pomocí standardní konstanty PI (Ludolfovo číslo) lze např. vypočítat obvod a obsah kruhu, viz příklad .
Vlastnost | Popis |
E | Základ přirozeného logaritmu (2,71828). |
LN10 | Přirozený logaritmus čísla 10 (2,30259). |
LN2 | Přirozený logaritmus čísla 2 (0,69315). |
PI | Ludolfovo číslo (3,141592653). |
SQRT1_2 | Druhá odmocnina z jedné poloviny(0,7071). |
SQRT2 | Druhá odmocnina ze dvou (1,4142). |
Metody sqrt objektu Math využívá následující příklad .
Pokud následující metody vrací velikost úhlu, je vždy v radiánech.
Metoda | Popis |
abs(x) | Vrací absolutní hodnotu x. |
acos(x) | Arkuskosinus x , to musí být v rozsahu od -1,0 do 1,0. |
asin(x) | Arkussinus x , to musí být v rozsahu od -1,0 do 1,0. |
atan(x) | Arkustangens x. |
ceil(x) | Zaokrouhlí x směrem nahoru. |
cos(x) | Kosinus x. |
exp(x) | Exponencielní funkce ex. |
floor(x) | Zaokrouhlí x směrem dolů. |
log(x) | Vrací logaritmus x. |
min(x,y) | Vrací hodnotu, která odpovídá menší ze dvou hodnot x a y. |
max(x,y) | Vrací hodnotu, která odpovídá větší ze dvou hodnot x a y. |
pow(x,y) | Vrací hodnotu, která je výsledkem umocnění x hodnotou y. |
random() | Vrací náhodné desetinné číslo v rozsahu od 0 do 1. |
round(x) | Vrací nejbližší celé číslo k x. |
sin(x) | Sinus x. |
sqrt(x) | Vrací hodnotu odmocniny x. |
tan(x) | Tangens x . Pokud x bude záporné číslo, metoda vrátí hodnotu 0. |
Také závěrečný příklad této kapitoly demonstruje využití objektu Math. Pomocí metod random a round vygeneruje náhodné přirozené číslo, které poslouží k náhodnému výběru jednoho z přísloví.