Sobes.tech
Junior

Quelle est la différence entre let et var?

sobes.tech IA

Réponse de l'IA

var a une portée fonctionnelle ou globale, peut être redéclaré et réécrit. Est soumis au Hoisting, initialisé à undefined. let a une portée de bloc, peut être réécrit, mais pas redéclaré dans le même scope. Est également soumis au Hoisting, mais se trouve dans la "zone morte temporaire" jusqu'à l'initialisation.

Tableau de comparaison:

Caractéristique var let
Portée de la variable Fonctionnelle/Globale De bloc
Redéclaration Oui Non
Réécriture Oui Oui
Hoisting Oui Oui
Initialisation undefined - (zone morte temporaire)

Exemple:

// var
function exempleVar() {
  var x = 10;
  if (true) {
    var x = 20; // Redéfinition de x
    console.log(x); // 20
  }
  console.log(x); // 20
}

// let
function exempleLet() {
  let y = 10;
  if (true) {
    let y = 20; // Nouvelle variable y dans la portée de bloc
    console.log(y); // 20
  }
  console.log(y); // 10
}

exempleVar();
exempleLet();