logosrpen.gif (3014 bytes)JScript
Namodro


Proměnné v JScriptu

 

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ů :

  • _ahoj
  • MameSe
  • pocet_slov

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ě.

  1. Podivej se na typy hodnot 1 a "10". "10" je řetězec, 1 je číslo -> číslo je přetypováno na řetězec.
  2. Protože hodboty na obou stranách operátoru + jsou řetězce, proveď jejich spojení. Výsledkem bud řetězec "110"
  3. Podivej se na typy hodnot na každé straně +=. ted obsahuje číslo, "110" je řetězec, takže zkonvertuj číslo na řetězec.
  4. Protože na obou stranách += jsou řetězce, proveď jejich spojení.
  5. 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.

 

Obsah

Předchozí (psaní kódu)

Další (datové typy)


(c) Svět Namodro, všechna práva vyhrazena, kontaktní informace