Если и есть что-то, что сделает ваше путешествие по разработке программного обеспечения более гладким, так это понимание концепции масштаба.
Так что же такое, черт возьми, Scope и почему его важно понимать?
Проще говоря, область действия относится к контексту кода, где есть доступность или видимость. Это связано с тем, где переменные и методы доступны для использования.
Javascript имеет 3 основных типа областей видимости:
- Глобальный масштаб
- Функциональный объем
- Область блока
Переменные можно вызывать с помощью var, let или const. Как правило, избегайте использования var, потому что это может привести к ошибкам в программе. Если вы забыли использовать let или const и написать что-то вроде:
myName = 'Gabrielle';
он всегда будет глобальным.
если вы добавите его внутри такой функции:
function employee() { name = 'Gabrielle' return 'employee() function invoked' } employee(); // => employee() function invoked' name; // => 'Gabrielle'
В этом случае name = ‘Gabrielle’ по-прежнему имеет глобальную область действия, даже если вызывается внутри функции. Лучше всего при написании кода убедиться, что вы делаете переменные и функции доступными там, где они нужны.
Функциональный объем:
По словам моего инструктора из Принстона: «Все, что происходит в функции, остается в функции». Функции создают свою собственную область видимости. Переменная, определенная исключительно внутри этой функции, недоступна ни для чего во внешних областях.
Объем блока:
Блочные операторы также создают свою собственную область видимости. Он доступен внутри блока и не может быть доступен ничему во внешних областях. Переменные, объявленные с помощью let и const, имеют область действия блока.
Приведенный выше пример работает, потому что переменная var используется глобально. Однако приведенный ниже пример не будет работать, потому что const используется для создания переменной с областью видимости блока, но мы записываем console.log вне блока.
Я надеюсь, что этот короткий пост помог закрепить разницу между уровнями охвата и в качестве дружеского напоминания:
- воздержитесь от использования var вместо этого, используйте let и const для объявления ваших переменных.
- «То, что происходит в функции, остается в функции» — каждая функция создает свою собственную область видимости.
Использованная литература:
Область применения — Глоссарий веб-документов MDN: Определения веб-терминов | MDN
Область — это текущий контекст выполнения, в котором значения и выражения «видимы или на которые можно ссылаться. Если…developer.mozilla.org»