В Simple мы можем принять Scope как область, в которой наша программа может получить доступ к нашим объявленным переменным. Просто это. За этим не стоит ракетостроение, чтобы запутаться.

Но есть несколько типов Scope, и нам нужно понимать различия и то, как это работает. Потому что в более крупных проектах это поможет нам избежать столкновений.

Итак, в JavaScript есть 3 типа Scope:

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

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

3. Область действия блока.

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

Global Scope — это глобальная область наших кодов JavaScript. Это область действия по умолчанию. Любая переменная или функция, которая не находится внутри какой-либо функции или блока, по умолчанию находится внутри глобальной области видимости. Таким образом, все, что мы пишем в нашем коде, находится в глобальной области действия или глобально доступно.

Давайте рассмотрим пример:

Итак, в примере мы объявили переменную имени и функцию showName() в глобальной области видимости. Мы можем получить значение имени и вызвать функцию showName() из любого места. То есть мы можем получить доступ к переменной name из функции showName().

Функциональная область:

Функциональная область также известна как локальная область. В функциональной области переменные объявляются в функции, что означает между фигурными скобками. И самое главное, эти переменные доступны только в функции. Мы можем получить доступ к этим переменным вне функции.

Давайте рассмотрим пример:

Итак, мы видим, что мы не можем получить доступ к переменным, которые объявлены в функциональной области вне этой функции. А также мы видим, что функциональная область создает свою собственную среду и не изменяет глобальные переменные (имя переменной остается «Tamim»).

Область блокировки:

Таким образом, Block Scope почти аналогичен Function Scope, но применим только для let и const. Область между if/else, циклом или переключателем считается областью действия блока. Доступ к объявленным переменным let/const возможен только в области видимости. Но это отличается, когда дело доходит до var. Мы можем получить доступ к переменным «var» вне областей видимости блока.

Давайте рассмотрим пример:

Связывание области действия:

Цепочка областей видимости — еще одна важная концепция в JavaScript. На самом деле, это поведение JavaScript, то, как будет действовать программа, или какую переменную выберет JavaScript в определенный момент. Как мы уже знаем о трех областях видимости, при запуске JavaScript область браузера пытается найти значение переменной в текущей области видимости. Если он не может найти значение, он пытается выйти за пределы текущей области, чтобы узнать значение. И он будет продолжать этот процесс, пока не обнаружит значение переменной или не достигнет Global Scope. В конце концов, если ему не удастся узнать значение переменной, он выдаст «ReferenceError» или напечатает undefined. И попробуйте связать это сами.

Давайте рассмотрим пример: