Proměnné slouží k
ukládání hodnot ve vašich skriptech. Efektivním použitím mohou
značně napomoci k pochopení činnosti skriptu. Bývá dobrým zvykem
pojmenovávat proměnné podle typu hodnoty, kterou obsahují. Název
proměnné a je sice hezký a krátký, jeho informační
hodnota je však po letech nulová :-).
- Deklarace
proměnných
Ačkoliv to
není nutné, je dobrým zvykem deklarovat proměnné před jejich prvním
použitím. V JScriptu použiváme klíčového slova var.
Jediným případem, kdy je jeho použití nutné, je deklarace lokální
proměnné ve funkci. V ostatních případech se jedná pouze o
doporučenou praktiku. Následující fragment kódu jsou deklarace
proměnných :
- var mim = "Václav mál rád Václava."; // hodnota
uložena v mim je typu
řetězec.
- // Věta v závorkách je
přiřazena proměnné
mim.
- var ror = 3 //
Hodnota uložena v ror je číselného
typu
- var nen =
true; // Boolean typ (logický ano/ne)
var fif =
3.1415927; // desetinný číselný
typ
- Názvy
proměnných
JScript je tzv. case-sensitive jazyk (rozeznává malá
a velká písmena). To znaméná, že proměnná Pepa je
něco jiného, než pepa. Další podmínky pro názvy
proměnných jsou
:
- první znak musí být písmeno (velké
nebo malé) , podtržítko (_) nebo znaménko dolaru ($)
- další znaky moho být kromě výše
jmenovaných ještě číslice
- proměnná se nesmí jmenovat jako
klíčové slovo
Příklady správných názvů :
Nesprávné názvy :
- 333stribrnychstrikacek
- AT&T //
znak & není povolený znak
V případě, že chcete deklarovat
proměnnou a inicializovat ji (naplnit počáteční hodnotou), ovšem bez
nějaké specifické hodnoty, lze ji přiřadit speciální hodnotu
null.
- var nic =
null;
- var co = 3 *
nic; // hodnota v co bude 0.
Pokud deklarujete proměnnou bez
přiřazení počáteční hodnoty, potom existuje, ale její hodnota je
undefined.
- var Godota;
- var cekaniNa =
1*Godota; // v cekaniNa
bude hodnota NaN (Not a Number)
- // protože
Godota je
undefined.
Proměnnou lze deklarovat implicitně
(bez použití var) pouhým přiřazením hodnoty. Není
však pochopitelně dovoleno používat ve výrazech proměnnou, která
nebyla nikdy deklarována. V těchto případech se vygeneruje
runtime chyba (chyba za běhu programu).
- lel = "";
// proměnná je deklarována implicitně
- var neco = aaa +
bbb; // vygeneruje chybu, protože
aaa a bbb
- // neexistují (nebyly
deklarovány)
- Typová
konverze
Vzhlem k tomu, že JScript je netypový
jazyk, proměnné neobsahují hodnoty nějakého pevného typu. Místo toho
jsou typově ekvivalentní s hodnotou, kterou obsahují. Za jistých
okolností je možné provést automatickou konverzi proměnné určitého
typu na typ jiný. Čísla je možné jednoduše převést na řetězce, ale
řetězce nemohou být převedeny přímo do čísel. Z tohoto důvodu jsou
definovány dvě funkce, parseInt() a
parseFloat().
- var p_Od =
1;
- var p_Do =
10;
- var delejCo = "pocitej z
";
- delejCo = p_Od + " do " +
p_Do + ".";
Po vykonání kódu obsahuje proměnná
delejCo řetězec "pocitej od 1 do 10". Číselné hodnoty
proměnných p_Od a p_Do byly konvertovány na typ
řetězec.
- var ted = 0;
- ted += 1 +
"10"; // v tomto případě operátor + spojuje
řetězce, protože "10"
- // je řetězec (neslouží tedy
ke sčítání)
Po provedení kódu proměnná ted
obsahuje "0110". Popíšeme si způsob "uvažování" překladače v tomto
případě.
- Podivej se na typy hodnot 1 a "10".
"10" je řetězec, 1 je číslo -> číslo je přetypováno na
řetězec.
- Protože hodboty na obou stranách
operátoru + jsou řetězce, proveď jejich spojení. Výsledkem bud
řetězec "110"
- Podivej se na typy hodnot na každé
straně +=. ted obsahuje číslo, "110" je řetězec, takže zkonvertuj
číslo na řetězec.
- Protože na obou stranách += jsou
řetězce, proveď jejich spojení.
- Výsledek ulož do proměnné
ted.
- var potom = 0;
- potom += 1 + parseInt("10");
// v tomto připadě "+=" provede součet
Po vykonání kódu bude proměnná
potom obsahovat 11 celočíselného
typu. |