а var пользоваться плохо?
Когда кода будет более-менее много, можно случайно выстрелить себе в ногу, используя var. Основные отличия:
у переменной типа var область видимости - в пределах функции, в которой она объявлена
у const/let область видимости ограничена фигурными скобками, внутри которых они объявлены. Сложнее случайно поменять значение
Кроме того, ты легко можешь написать:
a = 3
var a
И никто тебе ничего не скажет против.
А вот если ты пишешь
a=3
let a
то скрипт упадёт с ошибкой. Что логично, ибо писать в переменную, которую ты ещё не инициализировал, может быть черевато сайдэффектами (забыл и в нескольких местах одну и ту же переменную используешь, и получаешь в ней неожиданные значения)