Back to questions
Junior — Middle
68
Чем отличаются объявления переменных с помощью ключевых слов var и let в JavaScript?
Companies where asked
Doubletapp
Answer from AI
sobes.tech AI
В JavaScript ключевые слова var и let используются для объявления переменных, но между ними есть важные отличия:
-
Область видимости (scope):
varимеет функциональную область видимости (function scope). Если объявитьvarвнутри функции, переменная видна во всей функции.letимеет блочную область видимости (block scope). Переменная видна только внутри ближайших фигурных скобок{}.
-
Поднятие (hoisting):
- Переменные, объявленные через
var, поднимаются (hoisted) и инициализируются значениемundefinedв начале функции. - Переменные с
letтоже поднимаются, но не инициализируются, доступ к ним до объявления вызывает ошибку (Temporal Dead Zone).
- Переменные, объявленные через
-
Повторное объявление:
varпозволяет повторно объявлять одну и ту же переменную в одной области видимости.letне позволяет повторное объявление в одной области видимости.
Пример:
function test() {
if (true) {
var x = 1;
let y = 2;
}
console.log(x); // 1
console.log(y); // Ошибка: y не определена
}
test();
В современных стандартах JavaScript рекомендуется использовать let (или const для констант) из-за более предсказуемого поведения и ограничения области видимости.