Войти Регистрация
Фронтенд

68. let в цикле, который меняют внутри тела

Лёгкая

Что выведет код? Запишите строки по порядку, по одной на строку.

В работе: Карусель тарифов МТС показывает каждый второй тариф через i++ в теле цикла, а клик по карточке открывает не тот тариф.

Как проверяем Код не запускаем — предскажите вывод. Пишите строки по порядку, по одной на строку; пробелы по краям не важны. Ответ один на подход: после него показываем разбор.
замыканияlet в forтаймеры

Источник: на задачах МТС: список тарифов в личном кабинете. Условие пересказано своими словами.

  1. const tariffs = ['Базовый', 'Близкие', 'Безлимит', 'Семейный'];
  2. for (let i = 0; i < tariffs.length; i++) {
  3. setTimeout(() => console.log('A', i, tariffs[i]), 0);
  4. i++;
  5. }
  6. let k;
  7. for (k = 0; k < 2; k++) {
  8. setTimeout(() => console.log('B', k), 0);
  9. }
  10. for (let j = 0; j < 2; j++) {
  11. setTimeout(() => j += 10, 0);
  12. setTimeout(() => console.log('C', j), 0);
  13. }
  14. for (const name of tariffs.slice(0, 2)) {
  15. setTimeout(() => console.log('D', name), 0);
  16. }
  17. console.log('конец цикла');