Глобальная область видимости

Глобальная область видимости — это область, в которой переменные доступны в любом месте файла, включая все функции и блоки.

Переменные объявляются в глобальной области, если они созданы вне всех функций, циклов, условий — то есть на самом верхнем уровне скрипта.

Пример:

let appVersion = "1.2.0"; // глобальная переменная
const apiUrl = "https://api.example.com";

function loadUserData() {
  console.log(appVersion); // можно использовать — доступна
}

loadUserData();
console.log(appVersion); // тоже доступна

Такие переменные доступны везде — в любой функции, даже в файле, подключённом позже. Это удобно для настроек, которые нужны повсеместно: URL API, токен авторизации, флаги режима приложения.

Но есть серьёзный риск — загрязнение глобального пространства.

Когда много разработчиков пишут код в одном файле или подключают несколько скриптов, они могут случайно переопределить одну и ту же глобальную переменную.

Пример проблемы:

// Файл 1 (ваш код)
let user = { id: 1, name: "Петр" };

// Файл 2 (сторонний скрипт)
let user = "guest"; // ой — перезаписал ваш объект!

console.log(user); // "guest" — ваша логика сломалась

Такие ошибки сложно отловить: они проявляются не всегда, зависят от порядка загрузки файлов, и могут быть в продакшене.

Поэтому:

  • Избегайте создания глобальных переменных без необходимости
  • Если нужно хранить данные на уровне приложения — используйте модули или объекты-нэйспейсы
  • В современном JavaScript используйте import/export — они не создают глобальные переменные

Лучшая практика: чем меньше глобальных переменных — тем стабильнее приложение.