Вам может быть интересно, как организованы и ограничены переменные вашей программы.

Область видимости - это пространство, в котором вы можете объявить свою переменную. В JavaScript есть три типа области видимости:

1.Глобальный объем: относится к пространству за пределами какой-либо функции или блока. Переменные, объявленные в глобальной области видимости, доступны везде.

2. Область действия функции: переменные, объявленные внутри функции, недоступны вне функции.

3. Область действия блока (ES6): переменные доступны только внутри блока (например, если блок). Это применимо только к переменным let и const, НЕ var. Переменные, объявленные с помощью var, попадают в ближайшую область видимости функции. Функции также считаются блочными.

Цепочка областей действия: каждая область всегда имеет доступ ко всем переменным из всех ее внешних областей.

Поиск переменной: поиск переменной в цепочке областей видимости для поиска переменной, не входящей в текущую область видимости.

Обратите внимание:

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