Sobes.tech
Junior

Care este diferența dintre let și var?

sobes.tech AI

Răspuns de la AI

var areă funcțională sau globală, poate fi redeclarată și rescrisă. Este supusă hoisting-ului, fiind inițializată cu undefined. let are scop de bloc, poate fi rescris, dar nu redeclarat în același scop. De asemenea, este supusă hoisting-ului, dar se află în "zona moartă temporară" până la inițializare.

Tabel comparativ:

Caracteristică var let
Scopul variabilei Funcțional/Global De bloc
Redeclarare Da Nu
Rescriere Da Da
Hoisting Da Da
Inițializare undefined - (zona moartă temporară)

Exemplu:

// var
function exempluVar() {
  var x = 10;
  if (true) {
    var x = 20; // Redeclararea lui x
    console.log(x); // 20
  }
  console.log(x); // 20
}

// let
function exempluLet() {
  let y = 10;
  if (true) {
    let y = 20; // Nouă variabilă y în scop de bloc
    console.log(y); // 20
  }
  console.log(y); // 10
}

exempluVar();
exempluLet();