Sobes.tech
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.