Junior — Middle
Milyen különbségek vannak a let és a var használatával történő változóbejelentés között JavaScript-ben?
sobes.tech MI
Válasz az MI-től
A var-ral deklarált változók funkcionális hatókörrel (function scope) rendelkeznek, míg a let blokk hatókörrel (block scope). Ez azt jelenti, hogy a let-tel deklarált változó csak a legközelebbi kapcsos zárójelek között érhető el, például ciklus vagy feltétel belsejében.
Ezenkívül a var fel van emelve (hoisting) és az értéke undefined-re van inicializálva a kód futtatása előtt, míg a let szintén fel van emelve, de nem inicializálódik; a változóhoz való hozzáférés a deklaráció előtt hibát eredményez (Időszakos Halott Zóna).
Példa:
function test() {
console.log(a); // undefined
// console.log(b); // ReferenceError
var a = 1;
let b = 2;
}
Továbbá, a var lehetővé teszi ugyanazon változó újrafelhasználását ugyanabban a hatókörben, ami hibákhoz vezethet, míg a let nem.