Разница в объявлении счетчика цикла через let
и var
в том что через var
переменная-счетчик видна за пределами цикла в функции, через let
- только в пределах цикла.
Объясните пожалуйста почему в этих случаях разные выводы
for(var i = 0; i < 10; i++) setTimeout(() => console.log(i), 1000)
тут получаем десять десяток.
for(let i = 0; i < 10; i++) setTimeout(() => console.log(i), 1000)
а тут от нуля до десяти.
С первым примером все понятно, а почему во втором так? i
ведь создается один раз и прокручивается до начала выполнения первого setInterval
до десятки.
Одним словом - почему в эти двух примерах разные результаты?
https://learn.javascript.ru/let-const
При использовании в цикле, для каждой итерации создаётся своя переменная.
Переменная var – одна на все итерации цикла и видна даже после цикла.
С переменной let – всё по-другому.
Каждому повторению цикла соответствует своя независимая переменная let. Если внутри цикла есть вложенные объявления функций, то в замыкании каждой будет та переменная, которая была при соответствующей итерации.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый День! Столкнулся с проблемойСуществуют ли способы сохранения качества аватара без потери качества изображения? Проблема заключается...
Есть большой json-файл(примерно, 7,5 мегабайт), который подгружается с диска и декодируется примерно 3 секундыЯ захотел это исправить и положить...
Допустим, есть пользователь, который ввел денежные средства на сайтИ есть другой пользователь, который получить эти деньги после выполнения...