Sobes.tech
Back to questions
Middle+
6

Какие области видимости у let/const и var? Есть ли ещё один способ объявления переменных помимо var, let, const?

Companies where asked
IT OneIT One

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
}