Единая статья, в которой объясняется, как работает область видимости в JavaScript, а также блок, функция и глобальная область видимости.

Область применения: -

Область действия определяет доступность конкретной переменной в текущем контексте кода.

Давайте разберемся с областью действия на примере

Доступ к переменной insideIf можно получить внутри блока if.

Однако мы получим ошибку, если попытаемся получить доступ к той же переменной за пределами блока if, поскольку переменная находится вне области действия в текущем контексте.

Область блока -

Переменные, определенные с помощью let и const, имеют блочную область действия.

Прежде всего, что такое блок?

В JavaScript блок обозначается фигурными скобками. Пространство между фигурными скобками называется блоком. Например, операторы цикла if…else, do…while и for создают блоки.

Таким образом, переменные, определенные с помощью let и const, доступны только внутри блока, в котором они определены, и не будут доступны за его пределами.

Можно получить доступ к переменной insideIf внутри блока if.

Однако, если мы попытаемся получить доступ к переменной insideIf за пределами блока if, мы получим ошибку ссылки, что означает, что переменная не существует вне блока if.

Переменные, определенные с помощью ключевого слова var, не соответствуют области действия блока. Поэтому переменные также доступны за пределами блока, в котором они определены.

Переменная insideIf определена внутри блока if, но на нее также можно ссылаться вне блока.

Объем функций -

Переменные, определенные с помощью var, имеют область действия.

Таким образом, переменные, определенные с помощью var, доступны в любом месте внутри функции, в которой они определены, но не будут доступны вне этой конкретной функции.

Переменные определены в блоке if (insideIf), а к блоку for (insideFor) можно обращаться и ссылаться внутри всей функции.

Глобальный охват -

Переменные, объявленные вне какой-либо функции, становятся глобальными переменными. Доступ к глобальным переменным и их изменение можно получить из любой функции.

Самая внешняя переменная имеет глобальную область видимости. Следовательно, он может быть доступен и изменен обеими функциями.