Junior
Каква е разликата между let и var?
sobes.tech AI
Отговор от AI
var има функционална или глобална област на видимост, може да бъде преобявен и презаписан. Подлежи на Hoisting и се инициализира като undefined. let има блокова област на видимост, може да бъде презаписан, но не и преобявен в същата област. Също подлежи на Hoisting, но се намира в "временната мъртва зона" до инициализацията.
Таблица за сравнение:
| Характеристика | var |
let |
|---|---|---|
| Област на видимост | Функционална/Глобална | Блокова |
| Преобявяване | Да | Не |
| Презаписване | Да | Да |
| Hoisting | Да | Да |
| Инициализация | undefined |
- (временна мъртва зона) |
Пример:
// var
function primerVar() {
var x = 10;
if (true) {
var x = 20; // Преобявяване на x
console.log(x); // 20
}
console.log(x); // 20
}
// let
function primerLet() {
let y = 10;
if (true) {
let y = 20; // Нова променлива y в блоковата област
console.log(y); // 20
}
console.log(y); // 10
}
primerVar();
primerLet();