Переменные, объявленные с ключевым словом var, не могут иметь блок Scope.
Переменные, объявленные внутри блока {}, доступны вне блока.
Пример
{
var x = 2;
}
// x CAN be used here
До ES2015 JavaScript не имел Block Scope.
Переменные, объявленные с ключевым словом let, могут иметь блок Scope.
Переменные, объявленные внутри блока {}, недоступны извне блока:
Пример
{
let x = 2;
}
// x can NOT be used here
скопировано без проблем из W3schools of