Ve vanilla JavaScriptu se proměnné deklarují pomocí klíčového slova ‚var‚. V ES6 nyní můžete proměnné definovat také pomocí klíčových slov let a const. Všechna tři klíčová slova mají podobnou syntaxi pro deklaraci a inicializaci proměnných, ale liší se rozsahem a použitím. Pojďme se seznámit s rozdíly mezi těmito třemi klíčovými slovy.

klíčové slovo

var‚ má tradiční syntaxi definice proměnných. Volitelně můžete proměnnou inicializovat hodnotou. pokud proměnnou v příkazu var neinicializujete, bude jí automaticky přiřazena hodnota JavaScriptu undefined.

1) Rozsah

2) Hoisting deklarací var

Upozorňujeme, že proměnné deklarované klíčovým slovem var podléhají hoistingu. Hoisting znamená, že pokud deklarujeme proměnnou (deklarovanou, ale neinicializovanou) na konci funkce, runtime ji zvedne nahoru a my nebudeme mít žádnou chybu, pokud bychom tuto proměnnou použili před deklarací.

Přečtěte si více:

3) Pokud nepoužijete klíčové slovo ‚var‘

Pokud v JavaScriptu nepoužijete pro deklaraci proměnné klíčové slovo var (implicitní deklarace), bude proměnná vytvořena v globálním oboru. např.

for(index=0; index< array.length; index++){//index is in global scope //code}

Výše uvedený for-cyklus vytvoří v globálním oboru proměnnou s názvem index. Pokud by náhodou někdo jiný také používal globální proměnnou index, pak jste právě přepsali jeho proměnnou.

Chcete-li se vyhnout tomu, aby proměnná získala globální rozsah, musíte v deklaraci proměnné použít klíčové slovo var.

klíčové slovo

let je velmi podobné klíčovému slovu var – s větším omezením rozsahu.

klíčové slovo const

  1. const deklaruje proměnnou s blokovým rozsahem a konstantní hodnotou. Je to v podstatě deklarace proměnné s klíčovým slovem ‚var‚, kde hodnota proměnné je konstantní a nelze ji měnit.
  2. const dodržuje stejné principy rozsahu jako klíčové slovo let.
  3. pokud víte, že proměnná, kterou deklarujete, nemůže a neměla by mít povoleno nové přiřazení, pak ji deklarujte pomocí const, jinak použijte klíčové slovo let.

Syntaxe a použití

const PI = "3.14";PI = 12;//Uncaught TypeError: Assignment to constant variable.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.