Back to questions
IT One
Middle+
6
Какие области видимости у let/const и var? Есть ли ещё один способ объявления переменных помимо var, let, const?
Companies where asked
Answer from AI
sobes.tech AI
Области видимости переменных в JavaScript:
-
var — имеет функциональную область видимости (function scope). Если объявлен вне функции, становится глобальной переменной. Переменная доступна во всём теле функции, вне зависимости от блока.
-
let и const — имеют блочную область видимости (block scope). Переменные доступны только внутри ближайших фигурных скобок (например, внутри if, for, или блока функции).
Отличия:
- var можно переопределять и повторно объявлять в одной области видимости, let и const — нельзя повторно объявлять, const нельзя переопределять.
Другие способы объявления переменных:
- Глобальные переменные без var/let/const — не рекомендуется, но если присвоить значение переменной без объявления, она создаётся в глобальной области (в строгом режиме вызовет ошибку).
- Объявление через function parameters — параметры функции тоже являются локальными переменными.
- Объявление через import/export — в модулях ES6 переменные могут быть импортированы или экспортированы, что тоже влияет на область видимости.
Пример:
function example() {
if (true) {
var a = 1; // доступна во всей функции
let b = 2; // доступна только внутри if
const c = 3; // тоже блочная область
}
console.log(a); // 1
console.log(b); // ReferenceError
console.log(c); // ReferenceError
}