Junior
Jaka jest różnica między let a var?
sobes.tech AI
Odpowiedź od AI
var ma zasięg funkcji lub globalny, może być redeklarowany i nadpisywany. Podlega hoistingowi, inicjalizuje się jako undefined. let ma zasięg blokowy, może być nadpisywany, ale nie redeklarowany w tym samym zakresie. Również podlega hoistingowi, ale znajduje się w "strefie martwej" do momentu inicjalizacji.
Tabela porównawcza:
| Cecha | var |
let |
|---|---|---|
| Zasięg | Funkcyjny/Globalny | Blokowy |
| Redeclaracja | Tak | Nie |
| Nadpisywanie | Tak | Tak |
| Hoisting | Tak | Tak |
| Inicjalizacja | undefined |
- (strefa martwa) |
Przykład:
// var
function przykladVar() {
var x = 10;
if (true) {
var x = 20; // Nadpisanie x
console.log(x); // 20
}
console.log(x); // 20
}
// let
function przykladLet() {
let y = 10;
if (true) {
let y = 20; // Nowa zmienna y w zakresie bloku
console.log(y); // 20
}
console.log(y); // 10
}
przykladVar();
przykladLet();