Это почти как ругательство среди разработчиков. Javascript. Вот, я сказал это. Для большинства из нас, когда мы просто слышим эти несколько слогов вместе, это вновь всплывает на поверхность множество эмоций, которые мы, вероятно, испытали, когда впервые начали изучать Javascript… [замешательство, ревность, ненависть, отвращение, травма].
Я уверен, что теперь, когда мы потратили время на его изучение и понимание, большинство из нас стало намного лучше относиться к Javascript.
Javascript принципиально отличается от многих современных языков кодирования, которые мы используем сегодня. Javascript по-прежнему популярен по сей день из-за нескольких факторов. Это был один из первых языков программирования, код Javascript может исполняться как на клиенте, так и на сервере, разработчикам легко делиться кодом. Как бы мы ни хотели не согласиться, он относительно гибкий и динамичный. Хочет кто-нибудь из нас признать это или нет, важно понимать и кодировать на Javascript. Как человек, изучивший Javascript, я знаю одну концепцию, которая после того, как я ее изучил, сделала кодирование на Javascript чертовски проще. Эта концепция действительно понимает разницу между использованием var
, let
и const
при объявлении переменных.
В 2015 году вышла новая версия Javascript с множеством важных улучшений. Это дало нам добавление let
и const
для объявления переменных. Я расскажу о различиях между var
, let
и const
и о том, как правильно их использовать.
Примечание: переменная — это контейнер, в котором мы можем хранить значения и извлекать их позже. Это может быть число, строка, объект или даже логическое значение.
Оригинальный способ объявления переменных в Javascript — использовать var
. Чтобы использовать var
, вы должны использовать его так…
Чтобы получить массив спортивных команд Филадельфии, вы просто используете имя переменной, которое вы назначили выше. В данном случае это будет phillySportsTeams
.
Однако использование var
может вызвать у вас проблемы во многих отношениях.
Код предназначен для легкого чтения и понимания. Когда мы используем var
, это не указывает нам, будет ли это переменная, которая будет переназначена позже или нет. Он не говорит нам, в какой области он находится и является ли он глобальной переменной. Использование var
just не говорит нам достаточно, чтобы понять, что на самом деле происходит с кодом.
Вот как мы переназначим переменную.
(Как мы знаем, это уже не phillySportsTeams
, это команды из Нью-Йорка… если вы случайно переназначите переменную, вы легко можете ввести в заблуждение себя и любых разработчиков, которые будут читать ваш код.)
Поскольку вы можете так легко переназначать значения переменных, вы можете случайно переназначить переменную, не осознавая этого, и тогда у вас будут проблемы с кодированием на Javascript.
Целые функции могут давать вам данные, которые вы никогда не собирались давать, и вы потратите так много времени, пытаясь понять, что на самом деле происходит. Проблема только усугубляется, когда вы принимаете во внимание подъем.
Возможно, одна из самых важных причин не использовать var
связана с подъемом. Подъем — это механизм Javascript, в котором объявления переменных и функций перемещаются в верхнюю часть своей области видимости перед выполнением кода. Как правило, это может закончиться неожиданным объявлением переменной. Поскольку код предназначен для чтения, var
не сигнализирует вам, будет ли изменяться присваивание переменной или нет. Он также не говорит вам, в какой области он находится. Именно здесь использование let
и const
становится более полезным и эффективным. То, как let
и const
read, явно подразумевает, как они используются. Это помогает избавиться от путаницы при кодировании и чтении Javascript.
Честно говоря, ради собственного психического здоровья не используйте var
. Просто не делай этого. Вам и всем, кто когда-либо читал ваш код, будет гораздо легче кодировать на Javascript, если вы не будете использовать var.
.
Я понимаю, что важно знать о var
, так как вы, скорее всего, будете часто сталкиваться с ним при работе с унаследованным кодом. Но помните, код должен быть читабельным. Использование var
simply не говорит нам достаточно о том, что он на самом деле делает и как он на самом деле используется. Вот где пригодятся альтернативы let
и const
.
Вот пример того, как мы будем использовать let
.
Выглядит очень похоже на то, как мы использовали var
. Аналогично использованию var
мы также можем переназначить let
variables. Однако использование let
подразумевает, что его можно переназначить, тогда как var
не указывает и не читается таким образом. Это также становится полезным для использования его для циклов, например, когда вы хотите переназначить значение счетчика. Посмотрите пример ниже.
Это сигнализирует о том, что переменная, объявленная с помощью let
, будет использоваться только в блоке, в котором она определена, что не всегда является всей содержащей ее функцией. Еще одна вещь, о которой следует помнить при использовании let
, заключается в том, что let
можно обновить, но нельзя повторно объявить. В отличие от var
, использование let
в качестве переменной не может быть повторно объявлено в пределах его области действия. Итак, пока это будет работать:
Он собирается вернуть ошибку…
Однако если одна и та же переменная определена в разных областях видимости, ошибки не будет:
Почему нет ошибки? Ну, это потому, что оба экземпляра обрабатываются как разные переменные, потому что они имеют разные области видимости.
Этот факт делает let
лучшим выбором, чем var
. При использовании let
вам не нужно беспокоиться, если вы использовали имя для переменной раньше, поскольку переменная существует только в пределах своей области.
Лучше всего использовать const
. Чтобы использовать его, вы объявляете назначение переменной так же, как var
и let
.
Использование const
позволяет сделать объявление переменной постоянным, чтобы переменную нельзя было переименовать или объявить повторно. Это облегчает понимание того, что происходит при чтении кода, поскольку переменная всегда будет содержать одни и те же данные. Всякий раз, когда другой разработчик читает код и видит объявление const
, он автоматически узнает, что переменная указывает на один и тот же объект или имеет одно и то же значение каждый раз, когда на нее ссылаются в программе.
Чтобы уточнить, вот основные различия …
- Объявления
var
имеют глобальную область видимости или область действия функции, в то время какlet
иconst
на самом деле имеют блочную область видимости. var
переменных могут быть обновлены и повторно объявлены в пределах своей области видимости;let
переменные могут быть обновлены, но не объявлены повторно;const
переменные не могут быть ни обновлены, ни переобъявлены.- Все они подняты на вершину своего размаха. Но в то время как переменные
var
инициализируются с помощьюundefined
, переменныеlet
иconst
не инициализируются. - В то время как
var
иlet
могут быть объявлены без инициализации,const
необходимо инициализировать во время объявления.
Это сообщение написано студентом-разработчиком Power Code Academy.