Что такое область видимости (`scope`) и какие типы области видимости существуют в JavaScript?
Область видимости - это контекст, в рамках которого определяются и становятся доступными переменные, функции и другие объекты.
Типы областей видимости:
- Глобальная - доступна во всём коде, переменные видимы в любом месте программы
- Функциональная - переменные доступны только внутри функции, где они были объявлены
- Блочная - переменные доступны только внутри блока {}, где они объявлены
- Модульная - переменные и функции доступны только внутри модуля, если они не экспортированы
- Лексическая - это механизм, который определяет доступность переменных на основании их расположения в коде во время его написания. Она описывает правила взаимодействия между вложенными областями видимости.
- Дочерние области видимости могут получать доступ к переменным родительских областей.
- Родительские области видимости не имеют доступа к переменным дочерних областей