JavaScript для цикла выполнения заказа - PullRequest
0 голосов
/ 15 мая 2018

Может ли кто-нибудь просветить меня об этом материале ... Итак, я читаю статью о закрытии с этого сайта https://wsvincent.com/javascript-closure-settimeout-for-loop/

В статье говорится о том, что происходит за кулисами этого регулярного цикла for

for (var i = 1; i < 5; i++) {
  console.log(i);  // 1 2 3 4
}

// Из статьи

1st pass: i is 1, increment to 2, check is 2 < 5? Yes, so output.

2nd pass: i is 2, increment to 3, check is 3 < 5? Yes, so output.

3rd pass: i is 3, increment to 4, check is 4 < 5? Yes, so output.

4th pass: i is 4, increment to 5, check is 5 < 5? No, so exit loop.

Мой вопрос: если i уже было увеличено, должен ли 1 больше не быть первым выводом?Я сейчас в замешательстве.

Ответы [ 2 ]

0 голосов
/ 15 мая 2018

ДЛЯ LOOP SYNTAX

for ([initialization]; [condition]; [final-expression]) statement

  • Выражение , используемое для инициализации переменной счетчика. ( var i = 0 в примере )

  • Условие , которое должно быть оценено до каждая итерация цикла . Если это выражение имеет значение true, оператор выполняется. ( i <5 в примере </em>)

  • A конечное выражение , которое будет оцениваться в end каждой итерации цикла ( i ++ в примере )

  • Оператор , который выполняется, пока условие оценивается как true . ( console.log (i) в примере )

Источник : MDN для цикла

for(var i=0; i<5; i++){
  console.log(i);
}
0 голосов
/ 15 мая 2018

Связанные объяснения явно неверны, ваш цикл:

for (var i = 1; i < 5; i++) {
  console.log(i);  // 1 2 3 4
}

эквивалентно:

var i=1;
while (i<5) {
    console.log(i);
    i++;
}

Итак:

  1. i = 1
  2. тест 1 <5, log (1), затем увеличение </li>
  3. тест 2 <5, log (2), затем увеличение </li>
  4. и т.д.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...