Область видимости в циклах JavaScript

Давайте посмотрим, какой областью видимости обладают переменные при работе с циклами. Объявим какую-нибудь переменную внутри цикла:

javascriptfor (let i = 1; i <= 9; i++) {
  let num = 3;
  console.log(num); // выведет 3
}

Если же попытаться вывести эту переменную снаружи цикла, то мы получим ошибку:

javascriptfor (let i = 1; i <= 9; i++) {
  let num = 3;
}

console.log(num); // выдаст ошибку

При необходимости можно объявить переменную снаружи цикла - тогда она будет доступна как внутри цикла, так и снаружи:

javascriptlet num; // объявим переменную снаружи цикла

for (let i = 1; i <= 9; i++) {
  num = 3; // установим ей значение
}

console.log(num); // выведет 3