Я занимаюсь JavaScript уже больше года, и этот язык продолжает меня удивлять даже теми темами, которые, как мне казалось, я уже знал. Одним из таких является различие между var, const и let. После прочтения книги JavaScript: Полное руководство автора Дэвида Флэнагана я смог записать разницу в три пункта и вуаля! используя это, я ответил на многие вопросы интервью, которые я дал после прочтения книги. В этом блоге давайте рассмотрим три простых момента, и, поняв их, вы сможете решить многие вопросы в JavaScript.

  1. Область блока
  2. Повторное объявление
  3. Подъем
  • Блокировать область

if, цикл for, цикл while — это блоки в JavaScript. var относится к области действия функции, тогда как const и let относятся к области действия блока. Это означает, что если мы объявим какую-либо переменную с помощью let или const внутри оператора if или цикла for или цикла while, то мы не сможем получить к ним доступ вне этих блоков. Если мы объявим переменную с помощью var внутри блока, мы сможем получить к ней доступ в любом месте программы, поскольку она основана на функции. То есть переменные, объявленные с помощью var внутри функции, не могут быть доступны вне функции. Это верно для let и const, поскольку они имеют блочную область видимости, и функция также может считаться блоком. Давайте сначала рассмотрим, как объявление переменных работает в функции.

Он выдает предупреждение об использовании необъявленной переменной. Поскольку область действия переменных начинается с их объявления и заканчивается, когда мы закрываем функцию. Мы можем вернуть объявленное значение переменной, но не можем использовать саму переменную. Давайте посмотрим, как это работает в циклах и операторах if.

Аналогично работает в циклах for и while. Следовательно, область действия переменной, объявленной с помощью var, выходит за пределы блока, но ограничена функцией.

  • Переобъявление

Мы можем повторно объявить переменные, используя var с тем же именем, но это невозможно для let и const. Мы можем изменить значение объявленной переменной как с помощью var, так и с помощью let. Но мы не можем изменить значение переменной, которая является константой. Следовательно, var можно переобъявить и переназначить, let нельзя переобъявить, но можно переназначить, а const нельзя переобъявить и переназначить.

  • Подъем

Поднятие — очень важная концепция в JavaScript, и мы можем видеть это и в переменных. Это просто означает поднятие состояния в начало программы, даже если оно определено где-то посередине программы. В случае var, let и const: var поднимается, а let и const — нет.

Понимание подъема в var:

переменные let и const можно использовать только тогда, когда они объявлены.