Область видимости
1. Область видимости
Область видимости переменных (variable scope) - доступность переменных в определенном месте кода. Есть несколько областей видимости: глобальная
, блочная
, eval
и функции
.
Глобальная область видимости используется по умолчанию. Все и вся имеют доступ к переменным объявленным в ней. Переменные объявленные в глобальной области видимости уязвимы, так как их может изменить любой участок кода.
Рассмотрим на примере. Переменная value
объявлена в глобальной области видимости, то есть вне какого-то блока, и доступна в любом месте после объявления.
Любая конструкция использующая фигурные скобки {}
(условия, циклы, функции и т. п.) создает новую локальную область видимости, и переменные, объявленные в этой области видимости, используя let
или const
, не доступны вне этого блока.
Глубина вложенности областей видимости не ограничена, и все они буду работать по одному принципу - область видимости имеет доступ ко всем переменным объявленным выше по иерархии вложенности, но не может получить доступ к переменным объявленным во вложенных областях видимости.
Создадим несколько областей видимости и дадим им имена для наглядности.
Глобальная есть по умолчанию, создадим в ней переменную
global
Далее используя оператор
if
создадим блочную область видимостиblock A
Внутри области видимости
block A
поставим еще один операторif
, который создаст вложенную область видимостиblock B
На одном уровне с
block A
, создадим область видимостиblock C
все так же используя операторif
Будьте внимательны при использовании блочных областей видимости и переменных объявленных в них. Именно эта ошибка, вместе с невнимательностью, часто становится головной болью новичка.
Last updated