Глобальная и локальная область видимости в JavaScript
НАВИГАЦИЯ ПО СТРАНИЦЕ
Глобальная область видимости
Глобальная область видимости охватывает всю программу JavaScript. Переменные, объявленные в глобальной области видимости, доступны из любой части кода.
Пример:
let глобальнаяПеременная = 'Это глобальная переменная';
function глобальнаяФункция() {
console.log(глобальнаяПеременная); // Можем получить доступ к глобальной переменной
}
глобальнаяФункция();
console.log(глобальнаяПеременная);
Глобальная переменная глобальнаяПеременная доступна как внутри функции глобальнаяФункция, так и за её пределами.
Локальная область видимости
Локальная область видимости определяется внутри функций и блоков кода. Переменные, объявленные в локальной области видимости, доступны только внутри этой области.
Пример:
function локальнаяФункция() {
let локальнаяПеременная = 'Это локальная переменная';
console.log(локальнаяПеременная); // Мы можем получить доступ к локальной переменной
}
локальнаяФункция();
console.log(локальнаяПеременная); // Ошибка: локальнаяПеременная недоступна здесь
В этом примере, переменная локальнаяПеременная доступна только внутри функции локальнаяФункция и не видна за её пределами.
Замыкания (Closures)
Замыкания — это механизм, который позволяет функции сохранять доступ к переменным, объявленным внутри другой функции, даже после того, как внешняя функция завершила выполнение. Это создает локальную область видимости, которая сохраняется в памяти.
Пример:
function счетчик() {
let счет = 0;
function увеличить() {
счет++;
console.log(счет);
}
return увеличить;
}
let увеличитель = счетчик();
увеличитель(); // Выведет 1
увеличитель(); // Выведет 2
В этом примере, функция увеличить имеет доступ к переменной счет, хотя счетчик уже завершил своё выполнение. Это называется замыканием.