До Javascript ES6 был только один способ объявить переменную, var. Авторы Javascript поняли, что есть проблемы с var, и придумали две новые переменные в ES6, const и let. Сегодня я хочу просто поговорить о преимуществах объявления переменных как const или let вместо var.

Во-первых, я хочу обсудить var и проблемы, которые у него были. Одна из основных проблем с var заключается в том, что его можно повторно объявить и обновить. По сути, это означает, что вы можете переписать переменную и не получить при этом ошибку. Представьте, что у вас есть программа, которая была длиннее, и вы случайно повторно объявили переменную var, а затем вам нужно вернуться и выяснить, где вы случайно повторно объявили ее, катастрофа. Другая проблема с var заключается в том, что переменные поднимаются наверх области видимости и инициализируются со значением undefined. Var также может иметь глобальную область действия или функцию/локальную область видимости. Было много ошибок и проблем с переобъявлением var, проблемами с областью действия, проблемами с подъемом и другими ошибками, которые привели к добавлению двух новых переменных в ES6, let и const.

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

Мое любимое объявление — const. Я использовал это в качестве объявления по умолчанию по одной основной причине: const нельзя обновить или повторно объявить. Поэтому, если я знаю, что у меня есть переменная, значение которой я не меняю, я просто добавляю к ней константу, и я знаю, что мне больше не нужно об этом беспокоиться. Если бы я когда-нибудь попытался изменить его или дать другой переменной такое же имя, я бы получил ошибку. Это помогает предотвратить многие проблемы, которые могут возникнуть, если вы перезапишете свои переменные. Подобно let, объявления const имеют область действия блока, и поскольку переменная может быть объявлена ​​только один раз в области видимости, это может помочь предотвратить проблемы, которые могут возникнуть, если мы будем использовать var внутри блока.

Это только то, что я знаю до сих пор. Мне сказали избегать var и всегда использовать let, если я хочу что-то, что можно обновить и по умолчанию использовать const. Мой главный вопрос, который я всегда задаю, звучит так: «Был ли когда-нибудь момент, когда я действительно использовал бы var вместо let или const?». На данный момент я не думаю, что есть. Но если я когда-нибудь найду вариант использования, я вернусь и сообщу вам!

Пример при попытке повторно объявить переменную:

var redeclare = "объявление переменной повторно";

var redeclare= «изменение переменной var»;

let redeclare = "переобъявленная переменная";

let redeclare= «изменение переменной var»; //ошибка: идентификатор ‘redeclare’ уже объявлен

const redeclare = "переобъявленная переменная";

const redeclare= «изменение переменной var»; //ошибка: идентификатор ‘redeclare’ уже объявлен