Proměnné v Javascriptu

Proměnné se používají pro ukládání a práci s daty v programu. Jsou definovány pomocí klíčového slova `var`, `let`, nebo `const` a jejich platnost se omezuje, podle toho jak byly deklarovány.

AndreaAndrea

Článek je určen začátečníkům, kteří s programováním v Javascriptu začínají.

Obecně platí, že proměnné v programovacích jazycích slouží jako konstrukce, které se používají k ukládání a načítá dat z paměti. Proměnná, která je definovaná nějakým zastupuje určitou hodnotu a tyto hodnoty jsou fyzicky uloženy v paměti. V programování vše vyžaduje nějakou paměť, v aplikaci využíváme spoustu proměnných: máme vstupní a výstupní data, definujeme konstantny, ukládáme si mezivýsledky vznikající v průběhu výpočtu.

Vznik proměnné

Předtím, než s proměnnou můžeme vůbec pracovat, musíme ji nejprve vytvořit nebo-li ji deklarujeme.

Je důležité pochopit další související termíny, jako jsou inicializace a přiřazení, které popisují životní cyklus proměnné. Budete se s nimi potkávat dál v programování, kariéře i na tomto webu.

Jedná se pouze o odbornější pojmy pro akt vytvoření proměnné a nastavení její hodnoty.

Pojmenování proměnných

Každá proměnná je určená jednoznačným názvem, kterému říkáme identifikátor. Identifikátor může být skoro libovolný řetězec znaků, který začíná písmeny, podtržítkem nebo dolarem a který může obsahovat čísla, ale nesmí začínat číslem.

Proměnné by měly být pojmenovány tak, aby co nejlépe vystihovaly jejich význam a účel použití. Doporučujeme vám si přečíst jak pojmenovat proměnnou.

Jakým způsobem vytvořit proměnnou?

Proměnou vytvoříme/deklarujeme pomocí klíčových slov var, let nebo const. Pokud vám tyto klíčové slova nic neříkají, používejte prozatím k deklaraci proměnné var, dokud se nenaučíte pracovat s funkcemi a bloky. V Javascriptu se var používal od počátku existence jazyka a bude vám zatím ve většině vyúkových úloh dostačovat. Klíčové slova letconst byly do JS přidány před pár lety jsou v mnoha situacích výhodnější k použití. Vymezují nám menší rozsah, kde proměnná platí a také zajištují neměnnost.

Správné přiřazení proměnné vypadá následovně:

var proměnná = 'hodnota'

nebo

var proměnná = 123

Kde proměnná je identifikátor proměnné a hodnota je libovolná hodnota, kterou chceme do proměnné přiřadit. Proměnné by měly být vždy deklarovány před jejich použitím. JavaScript dříve umožňoval přiřazování hodnot nedeklarovaným proměnným, čímž vznikla globální proměnná. Nicméně nelze již na tohle chování spoléhat a může nám tahle situace způsobit chybu a pád aplikace.

Jaké se používají hodnoty? A co jsou reference?

JavaScript je dynamicky typovaný jazyk, což nám na začátku zjednodušuje práci s proměnnými, protože nemusíte příliš myslet nad datovými typy. To, však neznamená, že Javascript datové typy nemá. Ve skutečnosti jsou data v proměnných dvojího typu: primitivní hodnoty a reference.

Počítače neumí přirozené ukládat hodnoty v podobě, ve které je známe my, lidé. V paměti počítače jsou proměnné organizovány a jejich hodnoty uloženy jako sekvence bitů v paměti počítače.

Základních datových typů není tolik, jako v jiných jazycích. Do proměnné můžete přímo psát literály primitivních hodnot. Hodnoty null, které reprezentují prázdný stav, ve smyslu, že proměnná nemá hodnotu a undefined jako nedefinovanou hodnotu.

Proč mi přiřazení nefunguje?

Jeden z běžných problémů, se kterým se mohou potýkat začátečníci, je chybová zpráva Invalid left-hand side in assignment^ls. Ta se objeví, když se pokoušíte přiřadit hodnotu proměnné pomocí nesprávné syntaxe. Konkrétně jde o to, že na levé straně (= left-hand side) přiřazení je něco, co není platným identifikátorem proměnné.

Použití operátoru == místo operátoru =:

var x == 24;

Rozdíl mezi operátor přiřazení a srovnání je rozebrán v samostatném článku.

Přiřazení hodnoty konstantě:

if (Math.PI + 1 = 3 || Math.PI + 1 = 4) {
	console.log("špatně!");
}
if (1 =< 55) {
	console.log("špatně!");
}

Přiřazení hodnot a reference (adresy)

Pokud přiřadíte proměnné objekt, pole nebo funkci proměnná drží referenční hodnotu, což znamená, že obsahuje jen adresu na místo v paměti, kde je daný objekt uložen.

To má dopad na to, že když chcete zkopírovat objekt nebo pole do nové proměnné, musíte použít jiný způsob než operátor přiřazení. Například Object.assign, nebo jiné metody pro hluboké kopírování, abyste zajistili, že nová proměnná obsahuje fyzickou kopii objektu nebo pole.

⁉️ Pointery

Kdo někdy programoval v C či C++, zná pointery (ukazatele). V Javascriptu se však s nimi nesetkáme. Namísto nich tu jsou reference, což není o totéž.