Область видимости — это часть программы, в которой мы можем обратиться к переменной, функции или объекту. Этой частью может быть функция, блок или вся программа в целом — то есть мы всегда находимся как минимум в одной области видимости.
Области видимости можно представить как коробки, в которые мы кладём переменные.
Глобальная область видимости — это самая внешняя коробка из всех. Когда мы «просто объявляем переменную», вне функций, вне модулей, то эта переменная попадает в глобальную область видимости.
Блочная область видимости ограничена программным блоком, обозначенным при помощи { и }.
Функциональная область видимости — это область видимости в пределах тела функции. Можно сказать, что она ограничена { и } функции.