Единая статья, в которой объясняется, как работает область видимости в 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) можно обращаться и ссылаться внутри всей функции.
Глобальный охват -
Переменные, объявленные вне какой-либо функции, становятся глобальными переменными. Доступ к глобальным переменным и их изменение можно получить из любой функции.
Самая внешняя переменная имеет глобальную область видимости. Следовательно, он может быть доступен и изменен обеими функциями.