В чем разница между var, let и const

Ответ

var - устаревший способ объявления переменных, имеет функциональную область видимости и поднимается (hoisting). Может быть переопределена и изменена.

let - имеет блочную область видимости ({}), не поднимается, может быть изменена, но не переопределена в пределах блока.

const - аналогична let, но не может быть переопределена или изменена после инициализации (кроме объектов и массивов, где можно менять свойства/элементы).

if (true) {
  var a = 1;
  let b = 2;
  const c = 3;
}
console.log(a); // 1
console.log(b); // ReferenceError
console.log(c); // ReferenceError

Лучше всегда использовать const по умолчанию, и let только когда нужно переопределять переменную. var не рекомендуется.