Освоение серии JavaScript

Область действия — это выгодная точка внутри кода. Выберите лист кода JavaScript и коснитесь пальцем любого места. Если бы вы были интерпретатором, то определенный объем кода и данных был бы видимым и доступным для вас с этой конкретной точки.

Зачем нам размах?

Представьте, что у вас есть принтер в небольшом офисе из 5 сотрудников. Сотрудники пользуются этим принтером, и в редких случаях два человека печатают что-то одновременно. Это не так уж много значит. Они тщательно разделяют свои листы, и обе стороны получают свои задания на печать. Но по мере того, как этот офис становится все больше и больше. Это превращается в огромную проблему. Иногда один и тот же принтер получает 10 разных заданий на печать одновременно, и теперь сотрудникам приходится разделять все эти листы и выяснять, кому что принадлежит. Как видите, после определенного момента увеличения числа сотрудников процесс печати становится слишком сложным для управления. Одним из решений является разделение сотрудников на отделы, и каждый отдел получает свой собственный принтер. Как только границы между отделами и владельцами принтеров разграничены, все возвращается на круги своя.

На заре компьютерного программирования память компьютера была небольшой. Объем данных и кода, которые мог запустить компьютер, был небольшим. Как программист, я мог отслеживать свои переменные и поток данных в компьютерной программе. Но по мере того, как компьютеры становились сильнее, а память увеличивалась, становились возможными более сложные программы. Вскоре управление данными и кодом стало проблемой. Одной части программы стало слишком легко испортить данные, необходимые другим частям программы. И как у каждого отдела должен быть свой принтер, так и каждая часть программы, имеющая свою область видимости, стала необходимой вещью.

Область видимости определяет видимость и доступность переменных и методов одной части программы для другой. Областью действия управляют по-разному в разных языках программирования, но в целом многие языки, включая JavaScript, разделяют концепцию локальных и глобальных областей.

В JavaScript все, что доступно за пределами функции, является частью глобальной области видимости, а то, что доступно внутри функции, является частью локальной области видимости. Раньше в JavaScript не было области действия на уровне блоков, но теперь с помощью let мы можем объявлять переменные, которые ограничены областью действия оператора, блока или выражения.

В приведенном выше коде две глобальные переменные объявлены в строках 1 и 2. Код объявляет третью переменную как локальную переменную в строке 5. В строке 6 код изменяет глобальную переменную изнутри функции. В строке 8, если бы эта переменная была объявлена ​​с ключевым словом var, она перезаписала бы insideVariable, но сейчас этого не происходит, потому что современный JavaScript позволяет вам объявлять переменные с блочной областью действия с помощью let.

Избегайте объявления глобальных переменных (например, загрязняющих глобальную область видимости)

Глобальное пространство имен используется всем вашим кодом. Объявление переменной в глобальном пространстве имен похоже на совместное использование принтера всеми сотрудниками фирмы. Это открывает возможность случайного изменения значений и данных.

Это не означает, что объявления глобальных переменных всегда можно избежать. Этого не всегда можно избежать, но в некоторых случаях может быть даже более целесообразным с архитектурной точки зрения определить некоторые из ваших переменных глобально. Например, импортировать внешние модули, которые разделяют весь ваш код. Например, общая столовая для вашей фирмы.

Знайте свои функции и их объем

В JavaScript локальные области создаются функциями, вы можете встретить локальную область, часто называемую областями функций. Переменные, объявленные внутри функции, доступны только внутри этой функции и доступны для функций, объявленных внутри этой функции. Возможность доступа к переменным, присутствующим в их непосредственной внешней среде, стала возможной благодаря встроенной технике/функции JavaScript, называемой закрытием. При разрешении переменной JavaScript начинает с самой внутренней области видимости и ищет снаружи.

Выводы:

  1. Область видимости определяет видимость и доступность переменных и методов одной части программы для другой.
  2. Избегайте объявления глобальных переменных, если они противоречат концепции модульности.
  3. Функции создают локальные области видимости, в которых переменные, объявленные внутри, доступны только внутри.
  4. let создает переменные с областью действия блока, переменные, объявленные с параметром let, остаются внутри своих блоков, операторов или выражений.