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

Мы уже обсуждали с вами область видимости переменных, объявленных внутри фигурных скобок условий. Аналогичной областью видимости обладают и циклы. Давайте посмотрим на примерах.

Объявим какую-нибудь переменную внутри цикла:

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

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

for (let i = 1; i <= 9; i++) { let num = 3; } console.log(num); // выдаст ошибку

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

let num; // объявим переменную снаружи цикла for (let i = 1; i <= 9; i++) { num = 3; // установим ей значение } console.log(num); // выведет 3

Область видимости счетчиков

Давайте теперь посмотрим область видимости счетчика цикла. Пусть, для примера, у нас есть вот такой цикл:

for (let i = 1; i <= 9; i++) { }

Очевидно, что переменная-счетчик i доступна внутри цикла:

for (let i = 1; i <= 9; i++) { console.log(i); // последовательно выведет числа от 1 до 9 }

А вот снаружи цикла переменная будет i недоступна:

for (let i = 1; i <= 9; i++) { } console.log(i); // выдаст ошибку