Sobes.tech
Junior — Middle

Aké sú rozdiely medzi deklaráciou premenných pomocou let a var v JavaScript?

sobes.tech AI

Odpoveď od AI

Premenné deklarované pomocou var majú funkčný rozsah (function scope), zatiaľ čo let má blokový rozsah (block scope). To znamená, že premenná s let je dostupná iba v najbližších zátvorkách, napríklad vo vnútri cyklu alebo podmienky.

Okrem toho, var je povýšená (hoisting) a inicializovaná hodnotou undefined pred vykonaním kódu, zatiaľ čo let je tiež povýšená, ale nie je inicializovaná; pokus o prístup k premennej pred jej deklaráciou spôsobí chybu (Dočasná Smrtná Zóna).

Príklad:

function test() {
  console.log(a); // undefined
  // console.log(b); // ReferenceError
  var a = 1;
  let b = 2;
}

Tiež var umožňuje opätovné deklarovanie tej istej premennej v tom istom rozsahu, čo môže viesť k chybám, zatiaľ čo let nie.