Создание поддерживаемого кода JavaScript важно, если вы хотите продолжать использовать этот код.

В этой статье мы рассмотрим основы создания поддерживаемого кода JavaScript, избегая глобальных переменных.

Избегайте глобалов

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

Среда выполнения JavaScript по умолчанию - везде использовать глобальные переменные.

Все, что у нас есть, определяется как свойства глобального объекта.

Это объект, представляющий внешний контекст скрипта.

window - это глобальный объект в браузере.

Таким образом, любая переменная или функция, объявленная в глобальной области видимости, становится свойством объекта window.

Например, у нас есть:

var color = "red"

or

function getColor() {
  console.log(color);
}

Затем мы можем получить значения, используя:

console.log(window.color)

or:

window.getColor();

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

Одна из проблем - коллизии имен.

Поскольку все находится в одной области, вполне вероятно, что у нас есть конфликты имен в глобальной области.

Возможно, мы где-то определили глобальную переменную color.

Это перезапишет значение, определенное ранее.

Переменная getColor зависит от color, поэтому было бы трудно отследить фактическое значение color.

Мы не знаем, откуда взялся color.

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

Хрупкость кода

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

Если окружающая среда изменится, то функция, скорее всего, сломается.

Метод getColor регистрирует undefined, если переменная color больше не существует.

Это означает, что любое изменение глобальной среды может вызвать ошибки во всем коде.

Глобалы можно изменить в любой момент с помощью любой функции.

Это означает, что надежность глобальных переменных также вызывает сомнения.

Чтобы сделать наш код более надежным, нам следует избегать глобальных переменных.

Поэтому вместо того, чтобы регистрировать color непосредственно в нашей getColor функции, мы должны регистрировать color из параметра.

Например, мы можем написать:

function getColor(color) {
  console.log(color);
}

чтобы вместо этого получить color из параметра.

Таким образом, мы знаем, откуда оно взялось.

Сложность тестирования

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

Создание тестов очень сложно, если они полагаются на глобальные переменные, поскольку их можно изменить чем угодно.

Тесная связь между различными частями кода, вызванная глобальными переменными, приводит к непредсказуемым результатам.

Следовательно, мы должны исправить это, убрав зависимость от глобальных переменных.

Мы не должны создавать собственные глобальные переменные.

Но мы можем полагаться на глобальные переменные, встроенные в JavaScript, например Array или Date.

Заключение

Мы должны избегать глобальных переменных, насколько это возможно.

Они затрудняют тестирование нашего кода.

И код, который мы создаем, хрупок, поскольку глобальные переменные можно изменить где угодно, чем угодно.

JavaScript на простом английском языке

Понравилась эта статья? Если да, то получите больше похожего контента, подписавшись на наш канал YouTube в Decoded!