В JavaScript есть три ключевых слова, с помощью который объявляются переменные: let, const и var, при этом let и const появились в ECMAScript 6 (спецификация JavaScript).
Объявление переменной через ключевое слово var присутствовал в JavaScript с самого начала и ранее только с помощью этого ключевого слова определялись переменные.
В настоящее время рекомендуется при объявлении переменных использовать только ключевые слова let и const.
ЧТО ТАКОЕ ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ
Прежде, чем говорить о разнице между let и const давайте немного проясним вопрос что же такое объявление переменных. Давайте посмотрим на такой пример:
На изображении выше вы видите несколько примеров объявление переменной.
В первом варианте мы объявляем переменную с именем «a«. Перед названием переменной находится ключевое слово let.
С помощью этого ключевого слова мы даём инструкцию интерпретатору JavaScript создать новую переменную с именем «a«.
В следующем примере: const c = 10, мы объявляем переменную «c» и присваиваем ей значение.
В одной строке можно объявить переменную и присвоить ей значение.
С помощью ключевого слова const мы объявляем переменную «c» (такая переменная будет создана) и с помощью оператора присваивания «=» мы присваиваем значение 10 вновь созданной переменной.
В последнем примере мы видим только присваивание переменной: a = true.
Значение true присваивается переменной «a«. Следует обратить внимание, что переменная «a» была объявлена до этого, поэтому использовать ключевое слово let здесь уже не нужно, т.к. переменная уже существует, а в данном примере мы просто записываем значение true в переменную «a«.
Если кратко подвести итог, то вы можете:
- Объявить переменную (let a);
- Объявить переменную и присвоить ей значение (const c = 10);
- Присвоить значение переменной (a = true)
РАЗНИЦА МЕЖДУ LET И CONST
Если вы объявляете переменную с помощью let, то далее вы можете переприсваивать значение этой переменной, т.е. задать новое значение той же переменной.
Давайте рассмотрим такой пример:
В первом примере выше мы создаем переменную «a» и присваиваем ей значение 10. Затем ниже мы присваиваем созданной переменной новое значение 20. В итоге в переменной «a» будет храниться значение 20.
Во втором примере мы сначала объявляем переменную с помощью let b, а затем присваиваем ей значение false.
Важно понимать какое будет значение переменной «b» после инструкции let b. Значение переменной «b» до её присваивания будет «undefined«.
Undefined – это специальный тип, который говорит о том, что у переменной нету значения. Значение еще не определено, отсутствует.
Основной нюанс использования let в том, что значение переменных, объявленных с помощью ключевого слова let можно переприсваивать, т.е. присваивать новое значение.
В случае использование ключевого слова const вы должны сразу в одной строке присвоить значение переменной. Это является обязательным.
Потом, если вы попытаетесь присвоить новое значение как в примере выше, то вы получите ошибку «TypeError: Assignment to constant variable» (Присваивание значения константной переменной).
Другими словами, если вы объявили переменную с помощью ключевого слова const, то присваивать новое значение этой переменной запрещено.
Если вы планируете в коде при объявлении переменной менять её значение, то используйте let, в ином случае const.
Если вы попытаетесь получить доступ к переменной, которая до этого была не определена, то вы получите ошибку: «ReferenceErroe: variable is not defined«. (вместо variable будет имя переменной, к которой пытаемся получить доступ).
До новых встреч!
Sphinx Academy