#javascript #for-loop #iterator #console #break
Вопрос:
Следующий цикл for работает нормально
for (let count = 0;; count ) {
console.log(count);
if (count >= 3)
break
}
Это приводит к ошибке, когда вместо двух точек с запятой стоит только одна ;
for (let count = 0; count ) {
console.log(count)
if (count >= 3)
break
}
Неперехваченная синтаксическая ошибка: Неожиданный токен ‘)
Комментарии:
1. Его проблема компиляции, чтобы глубоко погрузиться в это, может быть, нужно пройти через developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
Ответ №1:
Просто так работает синтаксис циклов for. Точки с запятой в цикле for отделяют друг от друга три разных выражения — оператор «инициализация переменной», выражение «условие остановки» и выражение «после итерации» (я просто придумываю имена здесь, но они соответствуют их назначению).
Итак, в этой строке кода:
for (let count = 0;; count )
Ставя там две точки с запятой, вы в основном говорите, что среднего выражения нет, т. Е. Для этого цикла for нет условия остановки. Вы можете опустить любой раздел, который вам нравится. for (;;)
это тоже допустимый цикл, и он делает то же самое, while (true)
что и . Важно то, что эти две точки с запятой всегда требуются в цикле.
Если, например, вы написали эту строку кода:
for (let count = 0; count )
Вы предоставляете только два из трех необходимых выражений. Какие два вы поставляете? Является ли count условием остановки? Или это действие после каждой итерации? Вместо того, чтобы компилятор угадывал ваши намерения , он просто выдает синтаксическую ошибку и требует, чтобы вы использовали две точки с запятой, чтобы было ясно, что ваши намерения состояли в том, чтобы интерпретировать это как for (let count = 0;; count )
«нет for (let count = 0; count ;)
«.
Узнайте больше об этом цикле в стиле c для MDN здесь.