Глобальная область видимости Это самая внешняя коробка из всех. Когда мы «просто объявляем переменную», вне функций, вне модулей, то эта переменная попадает в глобальную область видимости. Самый известный пример глобальной переменной это console.
console.log(console)
// Console {debug: function, error: function,
// log: function, info: function, warn: function, …}
Блочная область видимости
Она ограничена программным блоком, обозначенным при помощи { и }. Простейший пример такой области это выражение внутри скобок:
if (true) {
const a = 42
console.log(a)
// 42
}
console.log(a)
// ReferenceError: Can't find variable: a
Функциональная область видимости
Это область видимости в пределах тела функции. Можно сказать, что она ограничена { и } функции.
function scoped() {
const b = 43
}
console.log(b)
// Reference error.
К переменной b есть доступ только внутри функции scoped.