Назад к вопросам
Junior
67
questionbank
В чем разница между let и var?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
var имеет функциональную или глобальную область видимости, может быть переобъявлен и перезаписан. Подвержен Hoisting, инициализируясь undefined. let имеет блочную область видимости, может быть перезаписан, но не переобъявлен в той же области. Также подвержен Hoisting, но находится в "временной мертвой зоне" до инициализации.
Таблица сравнения:
| Характеристика | var |
let |
|---|---|---|
| Область видимости | Функциональная/Global | Блочная |
| Переобъявление | Да | Нет |
| Перезапись | Да | Да |
| Hoisting | Да | Да |
| Инициализация | undefined |
- (временная мертвая зона) |
Пример:
// var
function exampleVar() {
var x = 10;
if (true) {
var x = 20; // Переопределение x
console.log(x); // 20
}
console.log(x); // 20
}
// let
function exampleLet() {
let y = 10;
if (true) {
let y = 20; // Новая переменная y в блочной области видимости
console.log(y); // 20
}
console.log(y); // 10
}
exampleVar();
exampleLet();