Проверяет понимание области видимости переменных, объявленных через var, и их недоступность за пределами функции.
В JavaScript переменные, объявленные с помощью ключевого слова var, имеют функциональную область видимости. Это означает, что они доступны только внутри функции, в которой были объявлены, и не видны за её пределами. Анонимная функция — это функция без имени, которая может быть присвоена переменной или передана как аргумент. Если внутри такой функции объявить переменную через var, она будет локальной для этой функции.
var outerVar = 'глобальная';
var myFunc = function() {
var innerVar = 'локальная';
console.log(innerVar); // 'локальная'
};
myFunc();
console.log(innerVar); // ReferenceError: innerVar is not definedВ примере выше переменная innerVar объявлена внутри анонимной функции, присвоенной myFunc. При попытке обратиться к ней снаружи возникает ошибка ReferenceError, так как она не существует в глобальной области видимости.
Механизм областей видимости в JavaScript основан на лексическом окружении. Каждая функция при создании получает ссылку на внешнее окружение, но её внутренние переменные не экспортируются наружу. Это защищает данные от случайного изменения и помогает избежать конфликтов имён.
Использование var внутри функции гарантирует, что переменная будет изолирована от внешнего кода. Это полезно для инкапсуляции логики и предотвращения загрязнения глобального пространства имён. Однако в современном JavaScript чаще используют let и const с блочной областью видимости для более предсказуемого поведения.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию