Junior
Jaký je rozdíl mezi let a var?
sobes.tech AI
Odpověď od AI
var má funkční nebo globální rozsah, může být znovu deklarován a přepsán. Podléhá hoistingu a je inicializován jako undefined. let má blokový rozsah, může být přepsán, ale nelze jej znovu deklarovat ve stejném rozsahu. Také podléhá hoistingu, ale nachází se v "dočasné mrtvé zóně" až do inicializace.
Porovnávací tabulka:
| Vlastnost | var |
let |
|---|---|---|
| Rozsah platnosti | Funkční/Globální | Blokový |
| Znovu deklarovat | Ano | Ne |
| Přepsat | Ano | Ano |
| Hoisting | Ano | Ano |
| Inicializace | undefined |
- (dočasná mrtvá zóna) |
Příklad:
// var
function prikladVar() {
var x = 10;
if (true) {
var x = 20; // Znovu deklarace x
console.log(x); // 20
}
console.log(x); // 20
}
// let
function prikladLet() {
let y = 10;
if (true) {
let y = 20; // Nová proměnná y v blokovém rozsahu
console.log(y); // 20
}
console.log(y); // 10
}
prikladVar();
prikladLet();