1-) Переменные var относятся к глобальной области видимости, когда вы определяете их вне функции. эта переменная добавляется к глобальным объектам как свойства. глобальный объект — window для браузера, global для платформы nodejs.

как вы видите, счетчик был привязан к объекту окна

var counter;
console.log(window.counter); //  0

однако переменная «let» не добавляется к глобальным объектам

var counter;
console.log(window.counter); //  undefined

2-) когда вы объявляете переменную с помощью varkeyword внутри функции, она недоступна снаружи этой функции.

function increase() {
    var counter = 10;
}
// cannot access the counter variable here

3-) в приведенном ниже примере отображаются числа от 0 до 4 и число 5 вне цикла. (я выделил изменение, которое я сделал в цикле)

for (var i = 0; i < 5; i++) {
  console.log("Inside the loop:", i);
 }
console.log("Outside the loop:", i);

Выход:

Inside the loop: 5
Inside the loop: 5
Inside the loop: 5
Inside the loop: 5
Inside the loop: 5 
Outside the loop: 5

причина в том, что переменная «i» объявлена ​​с использованием ключевого слова var. Она рассматривается как глобальная переменная и может быть доступна как внутри, так и вне цикла. поэтому будьте осторожны при объявлении переменной через ключевое слово var.

4-)если бы мы определили переменную с помощью ключевого слова «let». переменная « не может быть доступна снаружи цикла. это означает, что переменная «i» существует только внутри цикла

for (let i = 0; i < 5; i++) {  
console.log("Inside the loop:", i); 
}
console.log("Outside the loop:", i);

будет выброшена ошибка в случае, если «i» вызывается вне цикла

Inside the loop: 0
Inside the loop: 1
Inside the loop: 2
Inside the loop: 3 
Inside the loop: 4
Uncaught ReferenceError: i is not defined

Ключевое слово «var» позволяет без проблем повторно объявить переменную. даже в этом случае, пожалуйста, не пытайтесь это сделать.

var counter = 10; 
var counter; 
console.log(counter); // 10

Однако если вы повторно объявите переменную с ключевым словом let, вы получите сообщение об ошибке:

let counter = 10;
let counter; // error

Ресурс, который я использовал;
https://www.javascripttutorial.net/es6/difference-between-var-and-let/