Объяснение способов объявления переменных в JS.

Объявление переменных - важный навык в любом языке программирования. Во многих курсах объясняется создание переменной и присвоение ей значения с помощью пустых полей, которые вы можете заполнить определенными вещами.
Вы можете найти контейнер и его содержимое, просмотрев этикетку, которую вы ему присвоили. В языке программирования мы называем метку именем, поле - нашим типом, а то, что мы помещаем внутрь, - нашим значением.
У этой концепции есть ограничения. Это слишком просто и поэтому не может объяснить некоторые идеи объявления переменных. Унаследовав эту концепцию, вы столкнетесь с трудностями, особенно со ссылочными концепциями. Следующий пример сложно интерпретировать с концепцией ящиков:

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

Давайте теперь посмотрим, как объявить переменную в JavaScript.

Объявление переменной с помощью var

От объявления переменной с var в основном отказались, и от этого категорически не рекомендуется. Мы все еще хотим разобраться в причинах этого.

1. var имеет функциональную область видимости!
Если вы пришли из другого языка программирования C-подобного, вы, возможно, уже знаете, что фигурные скобки объявляют так называемый блок. Объявления общих переменных имеют блочную область видимости (например, недоступны за пределами фигурных скобок). var имеет функциональную область видимости, что означает, что объявление с var известно всей функции. Если он объявлен вне какой-либо функции, он известен даже всему сценарию. Это может привести к нежелательным ошибкам.

2. var поднимается.
Рассмотрим следующий пример кода:

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

Это верно для функций и назначений с var.

3. var можно переназначить.

Работает только при выключенном strict mode. Это еще один пример того, что работа с var подвержена ошибкам.

Объявление переменной с помощью let

Если вы знакомы с другими языками программирования, let будет вести себя так, как и следовало ожидать от объявления переменных. Другими словами: let имеет блочную область видимости. В отличие от var, переменная не будет поднята при объявлении с использованием let.

Часть кода, в которой city неизвестно программе, часто называют «временной мертвой зоной» (TDZ). Если вы хотите охватить переменную, которая была объявлена ​​с использованием let, достаточно создать новый блок вместо объявления новой функции. Переменные, объявленные в родительской области, также известны дочерней области.

Попытка повторно объявить let выдаст ошибку.

Объявление переменной с помощью const

const во многих отношениях ведет себя как let. Но в отличие от объявлений с let,

  • вы должны инициализировать const значением
  • вы не можете присвоить другое значение, но const также не является неизменным

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

Что использовать когда?

Это просто: всегда используйте const, пока не получите сообщение об ошибке, а затем используйте let.

Вот и все, ребята!