Sobes.tech
Junior

Jaký je rozdíl mezi let a var?

sobes.tech AI

Odpověď od AI

var má funkční nebo globální rozsah, může být znovu deklarován a přepsán. Podléhá hoistingu a je inicializován jako undefined. let má blokový rozsah, může být přepsán, ale nelze jej znovu deklarovat ve stejném rozsahu. Také podléhá hoistingu, ale nachází se v "dočasné mrtvé zóně" až do inicializace.

Porovnávací tabulka:

Vlastnost var let
Rozsah platnosti Funkční/Globální Blokový
Znovu deklarovat Ano Ne
Přepsat Ano Ano
Hoisting Ano Ano
Inicializace undefined - (dočasná mrtvá zóna)

Příklad:

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

// let
function prikladLet() {
  let y = 10;
  if (true) {
    let y = 20; // Nová proměnná y v blokovém rozsahu
    console.log(y); // 20
  }
  console.log(y); // 10
}

prikladVar();
prikladLet();