Сопроводительные файлы можно скачать в здесь.
В Javascript есть 2 типа области видимости, с которыми мы должны быть знакомы: область действия функции и более новая область действия блока, которая была только что добавлена в ES6.
Область действия – это граница, в пределах которой данная переменная или функция допустима, может использоваться или иметь эффект.
До ES6 все переменные и функции имели область действия. Это просто означает, что доступ ограничен функцией, в которой они объявлены. Всякий раз, когда объявляется новая функция, создается новая область действия функции. Переменные с областью действия — это те, которые объявлены с помощью ключевого слова var.
Примечание. все переменные, объявленные с использованием ключевого слова var за пределами функции, принимают глобальную область действия как свою собственную функцию, она также известна в браузере как объект окна.
ПеременнаяlastNameдоступна только внутри функции nameCall(), отсюда и термин "область действия функции".
Пример 1.
Пример 2.
Переменная lastName определена внутри фигурных скобок ({}), однако любая объявленная переменная не будет затронута фигурными скобками, если только она не является функцией.
Другое поведение можно наблюдать с блочными областями.
Переменные, объявленные с использованием новых ключевых слов let и const, имеют блочную область действия. Это означает, что доступ к этим переменным возможен только в пределах фигурных скобок ({}), будь то оператор if, цикл или функция.
Пример 3.
Пример 4.
Между var, let и const большой разницы нет. ключевое слово, когда мы объявляем переменную внутри функции. Однако обратите внимание на следующие случаи.
Пример 5.
Пример 6.
В примерах 5 и 6 можно заметить, что доступ к переменной lastName ограничен и разрешен только в пределах двух фигурных скобок, такова природа блочных областей.
Вывод:
Область видимости используется для отделения различных групп переменных/переменных друг от друга, чтобы избежать ненужных или нежелательных изменений или эффектов. Javascript делает это, используя область действия и область действия блока, которые можно наблюдать, используя разные ключевые слова при объявлении переменной. Обе концепции важны и могут быть очень удобными в зависимости от того, как вы будете их реализовывать.