Junior
Aký je rozdiel medzi let a var?
sobes.tech AI
Odpoveď od AI
var má funkčný alebo globálny rozsah, môže byť znovu deklarovaný a prepísaný. Podlieha hoistingu a inicializuje sa ako undefined. let má blokový rozsah, môže byť prepísaný, ale nie znovu deklarovaný v tom istom rozsahu. Taktiež podlieha hoistingu, ale nachádza sa v "dočasnej mŕtvej zóne" až do inicializácie.
Porovnávacia tabuľka:
| Vlastnosť | var |
let |
|---|---|---|
| Rozsah platnosti | Funkčný/Globálny | Blokový |
| Znovu deklarovať | Áno | Nie |
| Prepísať | Áno | Áno |
| Hoisting | Áno | Áno |
| Inicializácia | undefined |
- (dočasná mŕtva zóna) |
Príklad:
// var
function prikladVar() {
var x = 10;
if (true) {
var x = 20; // Znovu deklarácia x
console.log(x); // 20
}
console.log(x); // 20
}
// let
function prikladLet() {
let y = 10;
if (true) {
let y = 20; // Nová premenná y v blokovom rozsahu
console.log(y); // 20
}
console.log(y); // 10
}
prikladVar();
prikladLet();