Sobes.tech
Junior

Kāda ir atšķirība starp let un var?

sobes.tech AI

Atbilde no AI

var ir funkcionālam vai globālam redzesloka ir, to var atkārtoti deklarēt un pārrakstīt. Tas pakļauts Hoisting, un tiek inicializēts kā undefined. let ir bloka redzesloks, to var pārrakstīt, bet ne atkārtoti deklarēt tajā pašā redzesloka līmenī. Arī tas pakļauts Hoisting, bet atrodas "laikā mirušajā zonā" līdz inicializācijai.

Salīdzināšanas tabula:

Īpašība var let
Redzesloka veids Funkcionāls / Globāls Bloka
Atkārtota deklarācija
Pārrakstīšana
Hoisting
Inicializācija undefined - (laikā mirušā zona)

Piemērs:

// var
funkcija piemērsVar() {
  var x = 10;
  ja (patiesa) {
    var x = 20; // x atkārtota deklarācija
    console.log(x); // 20
  }
  console.log(x); // 20
}

// let
funkcija piemērsLet() {
  let y = 10;
  ja (patiesa) {
    let y = 20; // jauna y mainīgā blokā
    console.log(y); // 20
  }
  console.log(y); // 10
}

piemērsVar();
piemērsLet();