Область видимости означает видимость и существование переменной. Переменная, объявленная в области видимости, не видна за ее пределами.
Теперь давайте узнаем о глобальной области видимости. Переменная, определенная вне всех функций или блоков, имеет глобальную область действия. Доступ к этой переменной можно получить из любого места в коде. Эта переменная называется глобальной и доступна во время существования приложения.
Мы также можем использовать глобальный объект окна для определения глобальной переменной. Давайте посмотрим на это на примере.
window.Global_Data = 5;
Теперь к этой переменной Global_Data можно получить доступ из любого места в коде.
Теперь давайте перейдем к пониманию области действия функции. Параметры и переменные, определенные в функции, находятся в области действия функции, что означает, что к ним можно получить доступ из любой точки внутри функции, но они недоступны вне функции. Давайте посмотрим на пример этого:
(function exampleFunc() { const a = 1; })(); console.log(a); Output: Uncaught ReferenceError: a is not defined.
Теперь давайте узнаем кое-что более интересное. Как известно, в JavaScript переменные могут быть объявлены тремя способами — var, let и const. Если мы объявим переменные с помощью var, то они будут иметь область действия функции, а также будут подняты на вершину их области видимости. Именно поэтому они доступны еще до того, как будут объявлены. Давайте посмотрим на это на примере кода:
(function exampleFunc() { console.log(a); var x = 5; })(); Output: undefined
Но совсем другое происходит с переменными, объявленными с помощью let. Мы можем получить доступ к переменной, объявленной с помощью let, только после ее определения. Давайте посмотрим на это на примере кода:
(function exampleFunc() { console.log(a); let a = 1; })(); Output: Uncaught ReferenceError: a is not defined
Более того, переменная, объявленная с помощью var, может быть повторно объявлена несколько раз в одной и той же области видимости. Однако это невозможно с переменными, объявленными с помощью let или const в одной и той же области видимости.
Пришло время узнать о области видимости блока. Если мы объявляем переменные внутри фигурных скобок, то доступ к этим переменным вне этих фигурных скобок будет невозможен. Это называется областью действия блока. Переменные, которые мы объявляем с помощью let и const, имеют блочную область видимости. Они доступны только в том блоке, в котором они определены. Принимая во внимание, что переменные, объявленные с помощью var, не имеют области действия блока. Давайте посмотрим на это на примере кода:
const a = 1; let b = 2; { const a = 5; let b = 6; } console.log(a); console.log(b); Output: 1 2
Давайте посмотрим на этот пример с переменной, объявленной с помощью var.
var c = 3; { var c = 7; } console.log(c); Output: 7
Таким образом, переменные, которые мы определяем в глобальной области видимости, доступны везде в коде, тогда как переменные, определенные в области действия функции, доступны везде внутри этой функции. И переменные, которые мы объявляем с помощью let и const, имеют область действия блока, тогда как переменные, объявленные с помощью var, не имеют области действия блока.