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
-  
constdeklaruje 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. -  
constdodržuje stejné principy rozsahu jako klíčové slovolet. - 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.
.