Ответ
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
не рекомендуется.