PassFront
  1. PassFront
  2. База знаний
  3. Основы языка

Что такое область видимости?

Основы языка

Область видимости (scope) — это контекст, определяющий, где в коде доступна переменная. Она задаёт «время жизни» и видимость идентификаторов.

Виды областей видимости

  • Глобальная — переменные, доступные везде.
  • Функциональная — переменные внутри функции (var, параметры).
  • Блочная — переменные внутри {} для let и const.
let global = 'виден везде';

function outer() {
  let fnScoped = 'виден в функции';
  if (true) {
    let blockScoped = 'виден в блоке';
  }
  // blockScoped здесь недоступен
}

Лексическая область видимости

JavaScript использует лексический (статический) scope: доступность переменных определяется местом их объявления в коде, а не местом вызова. На этом основаны замыкания.

Цепочка областей видимости (scope chain)

Если переменная не найдена в текущей области, движок ищет её во внешней, затем ещё выше — вплоть до глобальной. Наружу — можно, внутрь — нельзя.

const a = 1;
function fn() {
  const b = 2;
  return a + b; // a найден во внешней области
}

Коротко для собеседования

Область видимости — где доступна переменная: глобальная, функциональная, блочная. JS использует лексический scope (по месту объявления) и scope chain — поиск переменной от внутренней области к внешним. На этом строятся замыкания.

Другие вопросы раздела