Что такое var, let, const
var, let и const — это три разных способа объявления переменных в JavaScript.  Несмотря на то, что они в чем-то похожи, между ними есть важные различия, запишите их для лучшего понимания.  Я предпочитаю экспериментировать с javascript вместе с этим постом.
Область действия: переменные var имеют область действия функции, а переменные let и const имеют область действия блока.  Это означает, что переменные var доступны во всей функции, в которой они объявлены, а переменные let и const доступны только внутри блока, в котором они объявлены (например, внутри цикла или оператора if).
Пример:
function DemoForScope() {
  var x = 10;
  if (true) {
    var y = 20;
    let z = 30;
  }
  console.log(x); // 10 ✅
  console.log(y); // 20 ✅
  console.log(z); // ReferenceError: z is not defined 🚫 
}
Поднятие: переменные var поднимаются наверх своей области, а переменные let и const не поднимаются.  Это означает, что к переменным var можно получить доступ до их объявления, а к переменным let и const нельзя.
Пример:
console.log(a); // undefined 🚫 var a = 10; console.log(b); // ReferenceError: b is not defined 🚫 let b= 20;
Переназначение: переменные var и let могут быть переназначены, а переменные const — нет.
Пример:
var superMan= 10; superMan = 20; console.log(superMan); // 20 ✅ let batMan= 30; batMan = 40; console.log(batMan); // 40 ✅ const hulk= 50; hulk = 60; // TypeError: Assignment to constant variable 🚫 //hulk is a constant it can't be changed
Временная мертвая зона (TDZ): переменные let и const имеют TDZ до их объявления.  Это означает, что вы не можете получить доступ или сослаться на переменную let или const до ее объявления, иначе вы получите ReferenceError.
Пример:
console.log(x); // undefined 🚫 var x = 10; console.log(tom); // ReferenceError: Cannot access 'tom' before initialization 🚫 let tom= 20; console.log(jerry); // ReferenceError: Cannot access 'jerry' before initialization 🚫 const jerry= 30;
рекомендуется использовать let и const вместо var, поскольку они обеспечивают лучшую область действия и позволяют избежать некоторых проблем, связанных с поднятием и переназначением.
const следует использовать, когда вы хотите объявить переменную, которую нельзя переназначить, а let следует использовать, когда вы хотите объявить переменную, которую можно переназначить.
Спасибо 🤗.
 
                                                                     
                                                                    