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();