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.