Sobes.tech
Junior

Aký je rozdiel medzi let a var?

sobes.tech AI

Odpoveď od AI

var má funkčný alebo globálny rozsah, môže byť znovu deklarovaný a prepísaný. Podlieha hoistingu a inicializuje sa ako undefined. let má blokový rozsah, môže byť prepísaný, ale nie znovu deklarovaný v tom istom rozsahu. Taktiež podlieha hoistingu, ale nachádza sa v "dočasnej mŕtvej zóne" až do inicializácie.

Porovnávacia tabuľka:

Vlastnosť var let
Rozsah platnosti Funkčný/Globálny Blokový
Znovu deklarovať Áno Nie
Prepísať Áno Áno
Hoisting Áno Áno
Inicializácia undefined - (dočasná mŕtva zóna)

Príklad:

// var
function prikladVar() {
  var x = 10;
  if (true) {
    var x = 20; // Znovu deklarácia x
    console.log(x); // 20
  }
  console.log(x); // 20
}

// let
function prikladLet() {
  let y = 10;
  if (true) {
    let y = 20; // Nová premenná y v blokovom rozsahu
    console.log(y); // 20
  }
  console.log(y); // 10
}

prikladVar();
prikladLet();